The method provided by the TimerCallback delegate will always be invoked on the thread which created the timer.
The thread which creates the timer must have a message processing loop (i.e. be considered a UI thread)
The class contains protection to prevent reentrancy to the method provided by the TimerCallback delegate
You can receive notification of an instance being Disposed by calling an overload of the Dispose method