2015-12-31 45 views
0

使用Qt定時器編程時,我們可以定義全局定時器,並讓一個插槽執行所有其他與定時器相關的操作(如回調);我們也可以在本地定義每個相關類的定時器。定義qtimer全球還是本地?和利弊?

那麼,有什麼優點和缺點?

+0

這更像是什麼是你的要求,你想如何設計它。 你可以採取任何適合你目前需求的方法。 – PRIME

+0

肯定是的,這就是爲什麼我想找到利弊。像效率或其他任何東西。 – Morris

回答

0

使用全局QTimer的優點是它會觸發連續的所有連接的插槽。一段時間後,多個QTimers可能會失步,並且即使它們以相同的時間間隔同步啓動,它們也可能異步超時。見Is QTimer smart enough to resynchronize itself

CPU負載也可以使一個QTimer超時太晚了,所以如果你有很多應該是同步的,他們可以異步超時如果系統被加載,具有單QTimer可避免(一旦超時,所有連接插槽將連續發射,不會中斷)。

現在,具有多個QTimers的明顯優勢是它們可以配置不同的超時間隔。而且它們也可以封裝在可重用的獨立模塊或類中(如果它們沒有自己的QTimer並且請求開發者聲明並設置全局模塊或類時,將難以在另一個項目中重用模塊或類,但是,單例模式可以幫助這一點)。