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

怎么判断线程是否正在执行

2013-11-06 
如何判断线程是否正在执行本帖最后由 shypzms 于 2013-10-26 17:45:55 编辑void CInterfacePcommDlg::OnBn

如何判断线程是否正在执行
本帖最后由 shypzms 于 2013-10-26 17:45:55 编辑

void CInterfacePcommDlg::OnBnClickedButton4()
{
// TODO: 在此添加控件通知处理程序代码
DWORD isThread;
GetExitCodeThread(hThread,&isThread);
if (STILL_ACTIVE == isThread)
{
AfxMessageBox("已经运行!");
return;
}
else
hThread = CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)setImage(),NULL,0,NULL);
}


我希望按下按钮之后先判断进程是否已经执行。HANDLE hThread是全局变量,setImage()是一个包含while循环的函数。
现在的问题是每次按下按钮都检测不到线程已经运行,请问是什么原因呢? 线程
[解决办法]
引用:
Quote: 引用:

CreateThread里面传入的应该是线程处理函数的名字,而你却在函数名后加上了一对括号,这样的代码能编译通过吗?我记得线程处理函数是有一个参数的,我把多余的括号去掉就能检测到了
i
为啥我把括号去掉就编译不过去了呢?
 error C2440: “类型转换”: 无法从“overloaded-function”转换为“LPTHREAD_START_ROUTINE”


你函数重载过吧, 定义一个唯一的函数名试试
[解决办法]
GetThreadExitCode 如果ExitCode是259的话,表示尚未退出

热点排行