怎样暂停(挂起)和恢复一个线程呢?
怎样在一个线程中暂停(挂起)和恢复另一个线程呢?
《WINDOWS核心编程》中说可以使用
DWORD SuspendThread ( HANDLE hThread ); //挂起线程
DWORD ResumeThread ( HANDLE hThread ); //恢复线程
是不是使用这两个函数就行?
比如我在int main()中创建了两个线程
handle[0]=(HANDLE)_beginthreadex(NULL,0,ThreadFunc1,NULL,0,NULL);
handle[1]=(HANDLE)_beginthreadex(NULL,0,ThreadFunc2,NULL,0,NULL);
线程函数ThreadFunc1执行一个任务操作(比如循环写入0至9),而ThreadFunc2不断检测某个条件的是否满足,如果满足,则暂停线程1的任务操作,是不是这样写就行:
ThreadFunc2()
{
if(条件满足)
{
SuspendThread(handle[0]);
//报警声;
}
} 多线程?挂起?恢复
[解决办法]
是不是?自己试试不就知道了吗 总共就2个API 有问的功夫早就试出来了
[解决办法]
对啊
你把它加入代码里面
如果参数没问题的画
逻辑上是可以通过的
[解决办法]
void CDxcTestDmDlg::OnButton1()
{
//线程1
handle[0]=(HANDLE)_beginthreadex(NULL,0,ThreadFunc1,NULL,0,NULL);
//线程2
handle[1]=(HANDLE)_beginthreadex(NULL,0,ThreadFunc2,NULL,0,NULL);
WaitForMultipleObjects(THREAD_NUM,handle,TRUE,INFINITE);
}
这里的Wait函数在死等,界面线程已经停止响应了。你点不了Button2正常。