如何优雅的停止线程 一般是给线程发送消息PostThreadMessage,或者是SetEvent()(线程函数中有有Wait这个EVENT) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 一般标准用法用是使用WaitForMultiObjects()或WaitForSingleObject()等待一个信号量,想退出时调用SetEvent()设置信号量。 所谓优雅就是让线程函数自己结束返回,而不是强制性关掉它,有如下方法:1.如果线程里面有while循环,设置全局变量作为其循环条件,如while(g_bQuit){}return 0;2.可以在线程里面建立一个线程消息队列,GetMessage如果返回0就退出线程,不是0就执行相应任务:MSG msg;while(GetMessage(&msg, NULL, NULL, NULL){}return 0;要退出线程,PostThreadMessage(WM_QUIT,...)3.个人觉得WaitForSingleObject是用来确保一个线程是否退出,如果线程已退出,wait线程句柄就会立刻返回,否则一直阻塞,用它来退出一个线程,我觉得不妥 MFC中COOKIE是怎么操纵的 帮我看看为啥写run注册表失败 opengl 如何实现左视图 我是irrlicht爱好者,想问问怎样在2D上画真彩色图片? 基于对话框的测量问题 关于PutCollect的问题; 求救!有关存储过程的调用出错。谢谢,不妨一进。 如何得到机器中所安装的软件信息(就像添加删除程序那样) 枚举Provider,怎么做? c++程序编译链接问题 线程做事情到一半的时候死掉如何处理 如何静态调用MFC规则DLL
while(g_bQuit){}
return 0;2.可以在线程里面建立一个线程消息队列,GetMessage如果返回0就退出线程,不是0就执行相应任务:
MSG msg;
while(GetMessage(&msg, NULL, NULL, NULL)
{
}
return 0;
要退出线程,PostThreadMessage(WM_QUIT,...)3.个人觉得WaitForSingleObject是用来确保一个线程是否退出,如果线程已退出,wait线程句柄就会立刻返回,
否则一直阻塞,用它来退出一个线程,我觉得不妥