Based in the source source of .Net 4.0, System.Timers.Timer seems to use System.Threading.Timer to process the actual implementation data. The latter generates timers by calling AddTimerNative . AddTimerNative is an internal call.
Googling AddTimerNative produces many interesting results, including a comment by Willy Denoyette , where he claims that he calls CreateTimerQueueTimer .
This page states that "Callback functions are queued in the thread pool."
Brian source share