首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

完结线程使用do while不行

2013-01-04 
结束线程使用do while不行各位大侠好:直接说问题,我有一个标志线程是否运行的flag,如果线程存活则为TRUE,

结束线程使用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);

热点排行