• 5717阅读
  • 4回复

程序进入while循环后,无法即时响应信号? [复制链接]

上一主题 下一主题
离线casual0402
 

只看楼主 倒序阅读 楼主  发表于: 2010-03-20
Hi,大家好。
我写一个程序,有一段代码功能如下:
1.用户按下F10(热键)或者开始按钮时,程序进入while(1)循环;
2.在while(1)循环体中,有一个语句检查flag标志为假,如果为假就break;
3.当用户点击F11热键或者停止按钮,发出信号,响应的槽会设置flag为假。

但是当我运行后,无法有效点击停止按钮;按下F11键也无法即时响应。

离线casual0402

只看该作者 1楼 发表于: 2010-03-20
补充说明一下,按下F11后,如果while(1)中语句执行完跳出来后,可以响应到此热键
离线dbzhang800

只看该作者 2楼 发表于: 2010-03-21
在循环中执行
void QCoreApplication::processEvents ( QEventLoop::ProcessEventsFlags flags = QEventLoop::AllEvents )   [static]

或者更正规一点,采用多线程
离线wangqy
只看该作者 3楼 发表于: 2010-03-22
可以在while(1)循环中加入sleep()试一试……
离线benbenmajia

只看该作者 4楼 发表于: 2010-03-22
如果你是单线程,你没有把信号在while循环后面发射吧?....
安然.....
快速回复
限100 字节
 
上一个 下一个