一般线程不需要手动删除,在run结束后会自动调用析构函数。
既然能自动就意味着能手动:
在调用线程之前需要将m_bAutoDelete设置为FALSE,默认情况下是TRUE自动删除,
DWORD dwRet = ::WaitForSingleObject((*mp_pThread)->m_hThread,1);
if((dwRet == WAIT_OBJECT_0))//thread重新被激活
break;
else
{
DWORD dwCount;
do{
dwCount = mp_pThread->ResumeThread();//激活thread
}while(dwCount>0); }
delete *mp_pThread;//删除线程过程调用析构函数
*mp_pThread = NULL;