 <p>Whether or no a thread can process a timer callback within its own context depends entirely on how the timer expiry can be communicated to the thread. The thread must call the callback itself upon the receipt of some inter-thread comms, (eg. a WM_TIMER message received by a Windows GUI thread when it is waiting on its Windows message queue input). If the thread is not waiting for input, it cannot handle any inter-thread comms from any kind of timer and so cannot call any timer-handler callback within its own context.</p> <p>Forms.Timer, the C++ builder Timer component and other such are ways of arranging for interval-based inter-thread notifications - if a thread does not actively wait for and handle those notifications, there can be no timer callback in the context of that thread.</p>