Key Points
Timers are lightweight objects that enable you to specify a delegate to be called at a specified time. The wait operation is performed by a thread in the thread pool.
To add a timer, call the Timer.Timer constructor. You can specify a delegate to be executed by a worker thread from the thread pool when the timer expires. To update a timer, call the Timer.Change method.
A timer is set to the signaled state when its specified due time arrives. Any thread with a handle to the timer can use one of the wait functions to wait for the timer state to be set to signaled.
To cancel a pending timer, call the Timer.Dispose function.
For reference details see: Timers.