首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

怎么判断线程状态

2012-02-10 
如何判断线程状态?如何判断线程状态?HANDLE hThreadhThreadCreateThread(NULL,0,(unsigned long(_stdcal

如何判断线程状态?

如何判断线程状态?
HANDLE hThread;
hThread=CreateThread(NULL,0,(unsigned long(_stdcall*)(void*))GetRecvMessageThread, (LPVOID)this,0,NULL);
CloseHandle(hThread);


[解决办法]
windows api 只能知道线程死没死,想知道状态,自己维护全局变量吧,一个写,一个读,不需要同步的,更高级的就用事件,写完了通知再读
[解决办法]
直接用GetExitCodeThread()函数,它的返回值表明了线程的状态

[解决办法]
BOOL GetExitCodeThread( 
HANDLE hThread, 
LPDWORD lpExitCode
); 
第一个参数线程句柄 ,是输入值
第二个参数是输出值,保存返回码 和STILL_ACTIVE 只有这两种了. 第一种表示线程已经结束了.

如果还要其它的状态.只有visualassist4680 所说的自己维护一个状态变量了
[解决办法]
LZ可以试试看 在
Void CCCC::Send(CString strDA, CString strContent, int nID)
的最后加一个全局变量m_bEnd,判断是否读写完成,从而决定是否执行再次创建.。

void CCCCC::OnTimer(UINT nIDEvent) 
{

CDialog::OnTimer(nIDEvent);
if(m_bEnd)
OnTime();
}
[解决办法]
你不要调用CloseHandle(hThread);
把hThread保存起来
DWORD ExitCode;
然后用GetExitCodeThread( hThread, &ExitCode); 就可以了

热点排行