我创建了3个类似的线程
CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)WorkThread1, this, 0, NULL);
CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)WorkThread2, this, 0, NULL);
CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)WorkThread3, this, 0, NULL);UINT WorkThread1(LPVOID wParam)
{ HANDLE Signals[3];
Signals[0]=hEvent0;
Signals[1]=hEvent1;
Signals[2]=hEvent2;
while(1)
{
DWORD res;
res=WaitForMultipleObjects(3,Signals,FALSE,-1);
res -= WAIT_OBJECT_0 ;
if(res != 0)
break;
......
}
return 1;
}
不知道如何通过事件来控制每个线程的启动和停止,
比如我要执行WorkThread1,停止WorkThread2
hEvent0 = CreateEvent(NULL, FALSE, FALSE, NULL);
hEvent1 = CreateEvent(NULL, FALSE, FALSE, NULL);
hEvent2 = CreateEvent(NULL, FALSE, FALSE, NULL);
解决方案 »
- 如何加载不同目录下的DLL
- 求助!!如何提取listbox的所有内容?
- 现在C++软件工程师哪个哪个方面的需要量要多点啊!
- editbox 输入达到上限 如何让最早的内容自动清空,而继续在最后写入新内容
- 请帮忙调试,谢谢
- 在什么地方可以声明整个工程的全局变量、常量及结构体???
- 关于CRecordset的一个小问题.(100分)在线等待!!!!!!!!!!!!!!!!!!!
- 哪里可以下载《VC6技术内幕》(第四版)和《深入浅出MFC》这两本书?
- 各位大哥哥,关于网络广播的问题,看一下好么
- 主 题:初学者的困惑:快捷键(加速键accelerator)怎么不起作用?
- 初学VC,问一个简单的问题!百分相送(关于RichTextView)
- 再VC++中文档视图中怎样实现像对话框那样的扁平界面?????
HANDLE hThread // handle to the thread
);
DWORD ResumeThread(
HANDLE hThread // identifies thread to restart
);
如你上面的
HANDLE hThread1=CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)WorkThread1, this, 0, NULL);
想要暂停它用SuspendThread(hThread1);
恢复运行用ResumeThread(hThread1)
就可以了
pSendfileThread->SuspendThread//挂起
th2.SuspendThread();
th3.SuspendThread();
th1.ResumeThread();