以下是我使用QTimer的方法:
QTimer *timer = new QTimer(this);
connect(timer, SIGNAL(timeout()), this, SLOT(update()));
timer->setInterval(1000);
timer->start();
程序监视update()函数并在其中打印当前时间。通常它按预期工作,它每秒打印一次,但是当程序开始处理其他工作时,会有一些中断,比如5到8秒。
Qt Documentation提到1毫秒等准确性问题,显然我还有另外一个问题。有什么想法吗?
答案 0 :(得分:2)
QTimer(以及所有基于事件的消息传递)不是中断驱动的。这意味着您无法保证在发送活动时您将收到该活动。准确性描述了事件是如何被触发的,而不是如何被触发。
如果您没有在长时间工作中进行线程处理,请在漫长的过程中定期致电QCoreApplication::processEvents()
以确保您的广告位被调用。
答案 1 :(得分:0)
您的其他工作运行了几秒钟,并且在这些工作期间没有事件处理。您需要对作业进行线程化以获得所需的响应能力。