QTimer定时不正确

时间:2011-12-18 16:58:16

标签: c++ qt timer

我有两个Qtimers。 T1从100ms开始。 T2从2ms开始。

我放了一些var来控制他们的时间。 为什么他们没有及时? 有时T2达到55,或54,或53,但从未达到确切的条件? 我需要在每次T1超时时,T2已经完成50次超时!

感谢。

有人可以建议我使用其他同步方法吗?

2 个答案:

答案 0 :(得分:3)

您不能依赖定时器进行线程同步,因为CPU时序永远不会精确。其他应用程序在您的操作系统后台运行并调整时间,因此您不能依赖它。

您必须使用其他同步方法,例如监视器,信号量等。

答案 1 :(得分:2)

您的计时器永远不会给您正确的间隔,因为依赖于您的操作系统线程,进程调度程序。因此,为了计算有效的经过时间,您应该在计时器滴答方法中获得系统时间,并计算当前时间和计时器开始时间之间的差值。对于同步,在线程同步的情况下需要使用互斥锁或信号量。