我在程序里建了几个工作线程,线程函数如下面这个样子
UINT ThreadFunc(LPVOID pThread)
{
  CXXX* p = (CXXX*)pThread;
  while(p->GetThreadState())
  {
     //some code
  }
  return 0;
}这里面我用GetThreadState()函数控制线程运行状态,当我想停止线程的时候,我会让GetThreadState函数返回FALSE,否则返回TRUE可是现在的问题就是,我并没有让GetThreadState函数返回FALSE,但程序运行时,这样建立的几个工作线程总是可能有自己退出的,即停止运行了。而且每次还不一定,退出时间也不一定,哪个退出也不一定。我找不到原因。请各位大侠指教

解决方案 »

  1.   

    你的 //some code 中间有问题。
      

  2.   

    同意 desrie(leir) 
    把代码拿出来看看
      

  3.   

    从表面看起来不是线程函数的问题,最好贴出其他代码
    建议使用Event来进行线程同步!
      

  4.   

    自己退出:判断哪一个可以用try{
         CXXX* p = (CXXX*)pThread;
    }
    catch{
        ...
    }
    这个CXXX* p :是否正确?