posts - 94, comments - 250, trackbacks - 0, articles - 0
  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

设置线程名称

Posted on 2010-05-08 09:24 Condor 阅读(1288) 评论(2)  编辑 收藏 引用
//
// Usage: SetThreadName (-1, "MainThread");
//
#include <windows.h>
#define 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)
{
   Sleep(
10);
   THREADNAME_INFO info;
   info.dwType 
= 0x1000;
   info.szName 
= threadName;
   info.dwThreadID 
= dwThreadID;
   info.dwFlags 
= 0;

   __try
   {
      RaiseException( MS_VC_EXCEPTION, 
0sizeof(info)/sizeof(ULONG_PTR), (ULONG_PTR*)&info );
   }
   __except(EXCEPTION_EXECUTE_HANDLER)
   {
   }
}

转载至http://msdn.microsoft.com/en-us/library/xcb2z8hs.aspx

Feedback

# re: 修改线程名称,并在VC调试器中显示  回复  更多评论   

2010-05-08 09:49 by 战魂小筑
转载麻烦表明出处.原文在此
http://www.cppblog.com/sunicdavy/archive/2010/05/04/114342.html

# re: 修改线程名称,并在VC调试器中显示  回复  更多评论   

2010-05-08 10:13 by Condor
@战魂小筑
不好意思,好像真的差不多啊.

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理