Qt 提供如 QBasicTimer QDeadlineTimer QElapsedTimer QTimer 的計時器。
注意: 當 (采用計時器或類似功能) 異步處理任務時,可能存在 RuntimeError TypeError 等異常。
在編寫帶 GUI 的應用程序時,一般組件都可順序、連續執行。
對性能要求較高的 GUI 程序而言,可能齣現阻塞現象,尤其是低配置電腦。
解決辦法: 使用超時計時器、使用異步綫程、或調用 QObject::startTimer。
譬如:文本編輯器,內容很多時鼠標、鍵盤會無響應 (或要等很長時間)。
QTimer 提供單次 間隔計時功能。
單次計時隻使用一次,QTimer 可以作為局部變量,但不如間隔計時可靠。
間隔計時可重復使用,但 QTimer 必須作為父級的變量 (或屬性) 以可靠工作,否則會有不確定行為。
QTimer 實例最好放在 QThread 實例之後,否則可能産生意想不到的情況 (或在操作完成後再將其移迴原綫程)。
計時器最低超時,可設為 25 ms (微軟 Windows 操作係統,粗糙計時器延遲)。
若此超時時間不足,可適當延長 (不使用時,要及時刪除計時器)。
QObject 有綫程傾嚮性。
QObject 除具有 timerEvent 計時器事件外,還可以擁有其它計時器。
QObject 具有 timerEvent 計時器事件,若計算不密集,異步操作首選 QTimer (尤其是使用 PyQt PySide)。
若計算密集且要不阻塞,優先采用 QThread 及其 timerEvent 計時器事件。
另請參閱:
版權聲明: 本文為獨傢原創稿件,版權歸 樂數軟件 ,未經許可不得轉載。