I create a Windows timer using the following
FHandle := SetTimer(0, 0, 1000, TFNTimerProc(@TMyClass.MyMethod));
Is this thread shown in the Delphi "Threads" window. If Yes how I can get this Thread ID?
I create a Windows timer using the following
FHandle := SetTimer(0, 0, 1000, TFNTimerProc(@TMyClass.MyMethod));
Is this thread shown in the Delphi "Threads" window. If Yes how I can get this Thread ID?
SetTimerdoes not create a thread but does call the specified function in the context of the main thread after the specified timeout. If you don't pass a callback function, SetTimer posts a WM_TIMER message to your main window class.
See the MSDN reference for SetTimer for more information.
There is no thread created by that function. The OS calls the callback function when your program handles the wm_Timer message. It's called from within the context of the same thread that called SetTimer, so the thread had better have a message pump. (It you're calling this from the main VCL thread, then the message pump is provided for you by the TApplication class.)
Furthermore, SetTimer doesn't return a handle. It returns a timer ID.
And finally, unless that method is a class static method, it won't work the way you hope. If the signature of the callback matches what SetTimer expects you to provide, you won't need a type cast, so if you needed to type-cast the function pointer to make the compiler accept your code, you probably got it wrong.