线程的挂起与唤醒
m_hThread = CreateThread(NULL,0,ThreadProcess,this,CREATE_SUSPENDED,NULL);
中间有定时器timeSetEvent(),间隔一个毫秒,调用一次回调函数,在回调函数中执行一次线程的唤醒动作
void CMainFrm::TimeCallBack()
{
................代码处理段
ResumeThread(m_hThread);
}
DWORD _stdcall ThreadProcess()
{
..............代码处理段
AfxMessageBox("线程被唤醒");
//处理完成后
SuspendThread(m_hThread);
return 0;
}
我的问题是:程序进来后,线程被唤醒了一次,再往后执行,就没有被唤醒了!我感觉是挂起时没有被挂起,所以后面的唤醒就无效了!求各路高手指点!
[解决办法]
线程中没有while或for循环,执行完一次线程不就退出了?
[解决办法]
‘ResumeThread(m_hThread);’
‘SuspendThread(m_hThread);’
为什么都不检查返回值?
[解决办法]
[解决办法]
呵呵,楼主仔细想想吧,你这个流程是不是有点问题。。。画个流程图啥的你就明白啦
你创建了个线程,然后挂起,通过定时器去唤醒,然后呢?然后线程执行完功能之后再挂起,
再然后呢?再然后线程就执行完啦!!!问题就在这,所以楼上有人说while循环什么的去执行