Call Timer.Dispose(bool) when you are finished using the timer. The Timer.Dispose(bool) method leaves the timer in an unusable state. After you call Timer.Dispose(bool), you must release all references to the timer so the memory it was occupying can be reclaimed by garbage collection.
Always call Timer.Dispose(bool) before you release your last reference to the timer. Otherwise, the resources the timer is using will not be freed until garbage collection calls the destructor of the timer object.