출처 : https://msdn.microsoft.com/en-us/library/xcb2z8hs(v=vs.120).aspx
_beginthreadex() 함수를 사용했을 때 스레드 이름을 설정하는 방법을 찾아보다가 아래의 방법을 발견했다.
사용 방법은 간단하다.
스레드 네임은 프로그램을 디버깅 할 때, 디버그 > 창 > 스레드를 선택하면 스레드의 관련 정보를 확인할 수 있다.
// // Usage: SetThreadName (-1, "MainThread"); // #include <windows.h> const DWORD MS_VC_EXCEPTION=0x406D1388; #pragma pack(push,8) 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; #pragma pack(pop) void SetThreadName( DWORD dwThreadID, char* threadName) { THREADNAME_INFO info; info.dwType = 0x1000; info.szName = threadName; info.dwThreadID = dwThreadID; info.dwFlags = 0; __try { RaiseException( MS_VC_EXCEPTION, 0, sizeof(info)/sizeof(ULONG_PTR), (ULONG_PTR*)&info ); } __except(EXCEPTION_EXECUTE_HANDLER) { } }