应用程序调用时QTimer::start()
是立即启动还是在当前事件处理后启动?换句话说,如果在其timeout()
插槽中长时间处理,我应该使用带时间校正的单次计时器吗?
问问题
869 次
1 回答
2
要确定地回答,需要检查 Qt 中特定于平台的代码。这是一个好兆头,表明这不是您应该依赖的东西。此外,QTimer
在准确性方面并没有太多承诺:
计时器永远不会早于指定的超时值超时,并且不能保证它们在指定的确切值时超时。在许多情况下,它们可能会延迟一段时间,具体取决于系统计时器的准确性。
计时器的准确性取决于底层操作系统和硬件。大多数平台支持 1 毫秒的分辨率,尽管在许多实际情况下计时器的精度不会等于该分辨率。
如果 Qt 无法提供请求的计时器点击次数,它会默默地丢弃一些。
如果您需要准确知道超时信号之间经过了多长时间,请将 yourQTimer
与QElapsedTimer
.
于 2013-11-05T07:38:47.773 回答