QTimer:timer-callback 可以重叠执行吗?
QTimer: can timer-callback be executed overlapping?
假设我有一个设置为每 40 毫秒调用一次定时器函数的 QTimer。此外假设,该函数调用的计时器函数需要 200 毫秒,直到 returns。那么我的计时器现在发生了什么(忽略此示例中的任何抖动和计时器不准确):
- 定时器函数是否每 40 毫秒调用一次,以便一段时间后我有 5 个重叠的线程调用同时在同一个函数中?
- 计时器是否每 200 毫秒调用一次?
- 计时器是否每 240 毫秒调用一次?
谢谢!
我用一段代码模拟了你的情况,结果是第三次,每 240 毫秒调用一次计时器。
这是我的代码的输出:
timer callback 1 time QTime("09:44:01.396")
timer callback output 1 time QTime("09:44:01.633")
timer callback 2 time QTime("09:44:01.640")
timer callback output 2 time QTime("09:44:01.875")
timer callback 3 time QTime("09:44:01.875")
timer callback output 3 time QTime("09:44:02.116")
timer callback 4 time QTime("09:44:02.116")
timer callback output 4 time QTime("09:44:02.354")
timer callback 5 time QTime("09:44:02.354")
timer callback output 5 time QTime("09:44:02.585")
P.S:
timer callback 1 time QTime("09:44:01.396")
计时器超时时出现此行
timer callback output 1 time QTime("09:44:01.633")
当回调函数完全完成时。
假设我有一个设置为每 40 毫秒调用一次定时器函数的 QTimer。此外假设,该函数调用的计时器函数需要 200 毫秒,直到 returns。那么我的计时器现在发生了什么(忽略此示例中的任何抖动和计时器不准确):
- 定时器函数是否每 40 毫秒调用一次,以便一段时间后我有 5 个重叠的线程调用同时在同一个函数中?
- 计时器是否每 200 毫秒调用一次?
- 计时器是否每 240 毫秒调用一次?
谢谢!
我用一段代码模拟了你的情况,结果是第三次,每 240 毫秒调用一次计时器。
这是我的代码的输出:
timer callback 1 time QTime("09:44:01.396")
timer callback output 1 time QTime("09:44:01.633")
timer callback 2 time QTime("09:44:01.640")
timer callback output 2 time QTime("09:44:01.875")
timer callback 3 time QTime("09:44:01.875")
timer callback output 3 time QTime("09:44:02.116")
timer callback 4 time QTime("09:44:02.116")
timer callback output 4 time QTime("09:44:02.354")
timer callback 5 time QTime("09:44:02.354")
timer callback output 5 time QTime("09:44:02.585")
P.S:
timer callback 1 time QTime("09:44:01.396")
计时器超时时出现此行
timer callback output 1 time QTime("09:44:01.633")
当回调函数完全完成时。