2011-12-18 57 views
0

我有兩個Qtimers。 T1從100ms開始。 T2從2ms開始。QTimer錯誤的時機

我放了一些var來控制它們的時間。 他們爲什麼不及時? 有時T2達到55或54或53,但從來沒有在確切的條件? 我需要在每次T1超時時,T2已經完成了50次超時!

謝謝。

有人可以建議我其他的同步方法嗎?

+3

http://developer.qt.nokia.com/doc/qt-4.8/qtimer.html - 閱讀「精度和計時器分辨率」部分。 – Mat

回答

3

您不能依賴定時器進行線程同步,因爲CPU定時從來都不準確。其他應用程序在您的操作系統的後臺運行並調整時間,所以您不能依賴它。

你必須使用同步的其他方法,如顯示器,信號燈等

2

你的計時器也永遠不可能給你正確的時間間隔,因爲您的操作系統線程上的依賴,進程調度。所以爲了計算一個有效的經過時間,你應該在你的計時器滴答方法中得到系統時間,並計算當前時間和計時器開始時間之間的差值。對於同步,在線程同步的情況下需要互斥或信號量。