线程已经return 0了,但GetExitCodeThread的ExitCode一直是STILL_ACTIVE,检测代码如下:

ttnewday16 2012-12-31 02:17:44
for(int i = 0; i < m_nThreads; i++)
{
while(true)
{
DWORD dwExitcode = 0;
GetExitCodeThread(m_phWorkerThreads[i], &dwExitcode);
if(dwExitcode != STILL_ACTIVE)
break;
Sleep(1);
}
}

其中m_nThreads的数量是2;
m_phWorkerThreads是HANDLE数组,保存CreateThread时的HANDLE值。

搞不懂为什么线程已经return 0了,但GetExitCodeThread的ExitCode一直是STILL_ACTIVE。
...全文
350 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
华美乐章 2012-12-31
  • 打赏
  • 举报
回复
m_phWorkerThreads[0],你确定你这个线程退出了吗? 看看你的代码 这个m_phWorkerThreads[0]线程一直在,那你代码永远出不了while循环. 写法问题
schlafenhamster 2012-12-31
  • 打赏
  • 举报
回复
AutoDelete ?

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧