//Windows下的做法是这样的:
/*开始线程*/
if(!hThreadRun)
{
bThreadRunFlag=TRUE;
hThreadRun = CreateThread(NULL, 0, ThreadRun,
NULL, 0, NULL);
}
/*线程函数ThreadRun中*/
while(bThreadRunFlag)
{
//....do something....
}
/*结束时*/
if(m_hThreadRun)
{
bThreadRunFlag=FALSE;
Sleep(500);
//等待6秒
DWORD dwRet = WaitForSingleObject(hThreadRun, 6000);
if(dwRet==WAIT_TIMEOUT)
{
/*强行中止线程退出码*/
TerminateThread(hThreadRun,1041);
}
else if(dwRet == WAIT_OBJECT_0)
{
//正常退出
}
CLOSE_HANDLE(hThreadRun);
};
保证线程退出的方法
最新推荐文章于 2021-04-24 11:55:26 发布
本文介绍在Windows环境下如何使用CreateThread函数启动线程,并通过WaitForSingleObject结合TerminateThread来安全地结束线程。文章还展示了如何设置线程运行标志及线程的正常退出流程。
899

被折叠的 条评论
为什么被折叠?



