Export (0) Print
Expand All
4 out of 15 rated this helpful - Rate this topic

Setting a Thread Name (Unmanaged)

This is for unmanaged C/C++ only. To set a thread name in your program, use the SetThreadName function, as shown in the following example:

//
// Usage: SetThreadName (-1, "MainThread");
//
typedef struct tagTHREADNAME_INFO
{
   DWORD dwType; // must be 0x1000
   LPCSTR szName; // pointer to name (in user addr space)
   DWORD dwThreadID; // thread ID (-1=caller thread)
   DWORD dwFlags; // reserved for future use, must be zero
} THREADNAME_INFO;

void SetThreadName( DWORD dwThreadID, LPCSTR szThreadName)
{
   THREADNAME_INFO info;
   info.dwType = 0x1000;
   info.szName = szThreadName;
   info.dwThreadID = dwThreadID;
   info.dwFlags = 0;

   __try
   {
      RaiseException( 0x406D1388, 0, sizeof(info)/sizeof(DWORD), (DWORD*)&info );
   }
except(EXCEPTION_CONTINUE_EXECUTION)
{
}
}

See Also

Using the Threads Window | Threads Window | Debugging Tools for Inspecting Your Program | Setting a Thread Name (Managed) | Visual Studio Debugger Model

Did you find this helpful?
(1500 characters remaining)
Thank you for your feedback
Show:
© 2014 Microsoft. All rights reserved.