当前位置: 代码迷 >> QT开发 >> 用信号槽的模式修改while循环等待的值可不可以
  详细解决方案

用信号槽的模式修改while循环等待的值可不可以

热度:137   发布时间:2016-04-25 03:05:12.0
用信号槽的方式修改while循环等待的值可不可以?
QTimer pn532_timer;
pn532_timer->start(20);
while(pn532_response_status == PN532_RESPONSE_INIT);
timer的槽里面修改pn532_response_status的值,这样的实现是不是有问题?

------解决思路----------------------
timer事件是消息循环驱动的,函数不返回,执行流程就无法返回事件循环,也就无法取出超时这个事件,更不会触发timeout这个信号。所以你应该把判断放在“timer的槽"里面。
------解决思路----------------------

改成这样就可以了。
while(pn532_response_status == PN532_RESPONSE_INIT)
{
QCoreApplication::processEvents();
}