这种情况,要“能够最快的响应,然后退出该线程”,肯定不能采用优雅的方式来结束了,直接野蛮的结束是解决方法之一
[quote=引用 1 楼 zgl7903 的回复:] 用事件或标记, 线程中主动去检测 #define _QueryQuit() if(WaitForSingleObject(hExitEvent, 0) == WAIT_OBJECT_0) break; //线程 do { _QueryQuit(); …… _QueryQuit(); …… _QueryQuit(); …… }while(0);
[quote=引用 2 楼 liudonghai11 的回复:] [quote=引用 1 楼 zgl7903 的回复:] 用事件或标记, 线程中主动去检测 #define _QueryQuit() if(WaitForSingleObject(hExitEvent, 0) == WAIT_OBJECT_0) break; //线程 do { _QueryQuit(); …… _QueryQuit(); …… _QueryQuit(); …… }while(0);
用挂起不行吗?一定要终止?终止的话应该是 没有办法释放线程里的C/C++资源,析构函数也不会调用。我觉得如果时间很长的话为什么不创建一个子进程来完成这个工作。强制进程终了也不好,但是起码系统可以帮你清理分配的C/C++资源
用事件或标记, 线程中主动去检测 #define _QueryQuit() if(WaitForSingleObject(hExitEvent, 0) == WAIT_OBJECT_0) break; //线程 do { _QueryQuit(); …… _QueryQuit(); …… _QueryQuit(); …… }while(0);
15,471
社区成员
49,182
社区内容
加载中
试试用AI创作助手写篇文章吧