我有两个Qtimers。T1从100ms开始。T2从2ms开始。
我设置了一些变量来控制他们的时间。为什么他们没有及时赶到呢?有时T2会达到55、54或53,但永远不会达到确切的条件?我需要在每次T1超时时,T2已经做了50次超时!
谢谢。
有没有人能给我推荐一下同步的其他方法?
发布于 2011-12-19 01:01:38
您不能依赖计时器进行线程同步,因为CPU计时永远不会精确。其他应用程序在您的操作系统后台运行,并调整时间,因此您不能依赖它。
您必须使用其他同步方法,如监视器、信号量等。
发布于 2011-12-19 01:09:20
您的计时器永远不会给您提供正确的时间间隔,因为依赖于您的操作系统线程,进程调度程序。因此,为了计算有效的运行时间,您应该在您的timer tick方法中获取系统时间,并计算当前时间和计时器开始时间之间的差值。对于同步,在线程同步的情况下需要互斥或信号量。
https://stackoverflow.com/questions/8553259
复制相似问题