2012-08-07 55 views
0

我有一個Windows窗體應用程序在一段時間後重復調用方法。所以我擔心CPU使用率。我知道兩種方法可以做到這一點:在特殊時間運行某種方法的更好方法是什麼?

1)使用Timer組件
2)在一個循環

那麼,哪一個更好調用Thread.Sleep(time)?哪些使用CPU較少或沒有使用CPU?

+0

試試看並找出答案。 – 2012-08-07 22:36:26

+0

WinForms? WPF?你已經嘗試過的更多細節越好......就目前來看,這不是一個非常有建設性的問題。他們都會爲你做這項工作,而且你不可能讓某人列出一些舊技術的優點和缺點,這些技術你可以很容易地只是谷歌(或者[在這裏搜索])(http:// stackoverflow。 com/questions/6265789/thread-vs-timer-in-c-sharp))並找出你自己。 – 2012-08-07 22:36:40

+0

[C#Timer或Thread.Sleep]的可能重複(http://stackoverflow.com/questions/1091710/c-sharp-timer-or-thread-sleep) – gkaran89 2012-08-07 22:39:45

回答

1

這並不重要,因爲即使將循環設置爲1ms,也無法真正衡量CPU使用率。這會很低。

由於可靠性,可維護性和可讀性的原因,您應該使用System.Windows.Forms.Timer

1

如果你想要每隔一段時間週期性地執行某個代碼塊,那麼就使用它爲此設計的計時器。有一點CPU架構知識向您顯示,通用定時器不會消耗任何處理器或OS資源來生成準確的時間延遲。

另一方面,維護處於掛起狀態的線程並將其切換到執行狀態並將其排入就緒隊列將佔用CPU和OS資源。

相關問題