在调用stop()之后,将发送qTimer超时信号
Will QTimer timeout signal be sent after stop() is called?
我现在正在处理QT 5.5/4.8。我担心timeout()
信号是否可能((偶尔)在该实例上调用stop()
明确停止后发送后发送?
我希望timeout()
信号将在start()
和stop()
之间发送,但这是事实吗?
我的情况是:start()
和stop()
都在主线程中调用,并且timeout()
信号是直接连接的。(我知道排队连接无法保证上述语句。)
快速答案: no ,在大多数情况下都不会调用它,但至少有一个例外。
可以调用的情况是您使用了排队的连接。在这里,您可能会在之后获得相关的插槽,例如,如果QTimer::timeout
信号恰好是在停止计时器之前发射,则停止了。
在上面的插槽中排队(但不一定称为),因此可能会在实际调用插槽之前调用QTimer::stop
。
如果使用了排队连接,则可以在插槽开始时检查QTimer::isActive()
(当然,您需要某种方法来访问计时器,也许是作为课程的成员)。
相关文章:
- C++减少modbus_connect超时
- 没有超时的C++条件变量
- 如何在C++(VS2010)中设置超时读取USB端口?
- C++卷曲柱在curl_easy_perform超时
- 如何从其他类n个Qt C++调用QTimer?
- 如何在Qt 4.8中阻止/忽略/丢弃早于特定超时的用户输入事件
- 如何改进我的代码,使其不会因超时而终止?(黑客排名挑战)
- 如何完全停止QTimer
- C++:函数外部的超时功能
- 使用boost::multiprecision cpp_int左移时出现超时错误
- QTimer 超时不会在单元测试中触发
- 使用单体计时器的pthread_cond_timedwait有时会比预期晚超时
- 超时后,线程睡眠不会继续执行
- QTimer超时信号在每个超时事件中多次发射
- QTimer 长时间超时
- 在调用stop()之后,将发送qTimer超时信号
- 通过直接连接或排队连接调用插槽的QTimer超时插槽之间的区别
- 使用 QTimer 的 Qt 登录超时
- 如果你停止一个QTimer,它会发出超时()信号吗?
- 在项目的另一个类中使用QTimer及其超时事件