设置线程名称 http://msdn.microsoft.com/en-us/library/xcb2z8hs%28v=VS.71%29.aspx当使用 Visual Studio 2005 时,不会设置线程名称,如下所示:
DWORD threadId;
HANDLE handle = CreateThread(NULL, stackSize, ThreadFunction,
ThreadParam, CREATE_SUSPENDED, &threadId);
if (handle)
{
SetThreadName(threadId, "NiceName");
ResumeThread(handle);
}
打开“线程”窗口后,我可以看到 ThreadFunction 的名称,而不是 NiceName。其他工具(如 Intel Parallel Inspector)按预期使用 NiceName。
经过几次实验后,我发现这是因为 Visual Studio 试图变得智能,当线程开始执行时,它会为自己命名。解决方法是不要在线程实际启动之前尝试为线程指定名称,实现此目的的最简单方法是从线程函数内部调用 SetThreadName。
我仍然有兴趣知道其他版本的 Visual Studio 是否显示相同的行为。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)