MFC中如何判断某个创建的线程还在该进程中?
2个回答
展开全部
线程的ID。
DWORD dwThreadID = 0;
HANDLE hThread=CreateThread(NULL,0,DownloadThread,0,NULL,&dwThreadID);//创建下载线程
//全局函数
static DWORD WINAPI DownloadThread(void *pArg)
{
//这里写上创建线程做什么的函数
return 0;
}
////////////等待线程结束
//等待线程结束。
DWORD dRet;
MSG msg;
while (1)
{
dRet=::MsgWaitForMultipleObjects(1,&hThread,FALSE,INFINITE,QS_ALLINPUT);
if (dRet == WAIT_OBJECT_0+1)
{
while (PeekMessage(&msg,NULL,0,0,PM_REMOVE))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
else
{
break;
}
}
//删除的线程资源。
CloseHandle(hThread);
DWORD dwThreadID = 0;
HANDLE hThread=CreateThread(NULL,0,DownloadThread,0,NULL,&dwThreadID);//创建下载线程
//全局函数
static DWORD WINAPI DownloadThread(void *pArg)
{
//这里写上创建线程做什么的函数
return 0;
}
////////////等待线程结束
//等待线程结束。
DWORD dRet;
MSG msg;
while (1)
{
dRet=::MsgWaitForMultipleObjects(1,&hThread,FALSE,INFINITE,QS_ALLINPUT);
if (dRet == WAIT_OBJECT_0+1)
{
while (PeekMessage(&msg,NULL,0,0,PM_REMOVE))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
else
{
break;
}
}
//删除的线程资源。
CloseHandle(hThread);
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询