我使用以下语句来生成并运行一个线程: CWinThread * pThread1; pThread1=AfxBeginThread(RecvThread1,(LPVOID)this);如何才能在线程外部终止这个线程?
解决方案 »
- 右击树节点
- DiaLog窗口子类化问题!再贴一次 !不信没人甩。
- mdi 下菜单里的撤销,复制粘贴怎么都不可用?
- 如何用VC制作记事本
- 急求把vc(基于对话框的)应用程序打包成exe文件的打包方法!谢谢!最好是比较简单的工具的。
- 内存位图大小优化问题
- ADO连本地ACCESS的问题!"Idispatch error #3105"
- ANSI字符串与Unicode字符串有什么区别?进行RS232通讯时想发“1234”可不可以直接发,还是转化成ASIC玛之后发?
- 无法找到调试信息No symbols are loaded for 。。之痛
- 如何得到界面扁平化效果。
- 如何构建一个字节,使得高4位为1,低四位为2?
- VC中怎么用DBGird好
{
}
if(bExit)
{
将分配的内存释放(如果有的话)
ExitThread();
}
有没有一种类似于linux下的wait(),signal()信号机制?
这是函数吗?能不能详细一点,多谢!
g_hExitEvent = CreateEvent(NULL, true, false, NULL);
g_hHaveExitEvent = CreateEvent(NULL, true, false, NULL);
CWinThread * pThread1 = AfxBeginThread(RecvThread1,(LPVOID)this);//线程函数RecvThread1
while(WaitForSingleObject(g_hExitEvent, 0) == WAIT_TIMEOUT) //检测要求线程结束信号是否设置
{}
SetEvent(g_hHaveExitEvent); //发出线程已经退出的信号
//RecvThread1//结束线程(主程序退出时)
SetEvent(g_hExitEvent);
pThread1->ResumeThread();
WaitForSingleObject(g_hHaveExitEvent, INFINITE); //检查线程是否退出
CloseHandle(g_hExitEvent);
CloseHandle(g_hHaveExitEvent);