Getting Current Native Thread

The native OS threads running in the current process are exposed through the Threads property of the Process class. Please note that this is not the same as a managed thread, these are the actual native threads running on the operating system.

In order to get a pointer to the current executing thread, we must use P/Invoke. Here's how we do it:


[DllImport("kernel32.dll")]
public static extern UInt32 GetCurrentThreadId();

UInt32 id = GetCurrentThreadId();
ProcessThread thread = Process.GetCurrentProcess().Threads.Cast<ProcessThread>().Where(t => t.Id == id).Single();

Bookmark and Share

                             

No Comments