结束线程使用do while不行
各位大侠好:直接说问题,我有一个标志线程是否运行的flag,如果线程存活则为TRUE,然后这个线程里面是一个while(1)的循环,使用waitformultipleobject等待两个事件,一个是工作事件,处理这个线程的工作任务,一个就是结束事件closeEvent,我在关闭窗口的onDestroy函数里面写:
do{
SetEvent(closeEvent);
}while(flag == true)
结果线程退不出去,但是直接写:
SetEvent(closeEvent);
就可以,不知道哪位以前遇到过这个问题
[解决办法]
SetEvent(closeEvent);
do{
sleep(0);
}while(flag == true);
如果还退不出来,看看你在哪里置flag为flase的,基本上就是那里出现了逻辑错误。
[解决办法]
do{
SetEvent(closeEvent);
}while(flag == true)
为什么要这么做,很奇怪啊,cpu占满了吧
直接
SetEvent(closeEvent);
WaitForSingleObject(线程句柄,xx);