C# Timer詳解

本文僅爲個人理解,如有錯誤請指正。

在C#中Timer類的定義有四個:

  • System.Threading.Timer
  • System.Windows.Forms.Timer:僅在.NetFramework中
  • System.Timers.Timer
  • System.Web.UI.Timer:僅在.Net Framework中

System.Windows.Forms.Timer

定時器,只能用於窗口中使用,Tick事件的觸發是在當前線程(UI線程)。

是通過Windows消息機制實現的,內部調用的是user32.dll 中一些函數如SetTimer、KillTimer等。缺點是時間不夠準確。

Enabled:設置或獲取定時器是否運行。

Interval:設置時間間隔,單位毫秒,默認爲100毫秒。

Start:開啓定時器,內部對Enabled設置爲true。

Stop:停止定時器,內部對Enabled設置爲false。

Tick:當到達Interval時間間隔後觸發的事件。

System.Threading.Timer

定時器,默認是在線程池線程中引發事件,基於服務器或服務組件在多線程環境中使用。互操作性差,適用於長期執行不進行任何改動的定時任務。可以設置首次延時時間。

構造函數:多個構造函數重載;延遲時間,默認爲0,表示立即啓動定時器,無窮大表示防止定時器啓動。

Change:更改計時器的啓動時間和方法調用之間的間隔,單位爲毫秒。

System.Timers.Timer

定時器,帶有生成重複事件的選項,默認是在線程池線程中引發事件。適用於作爲基於服務器的使用或在多線程環境。

AutoReset:自動重置,默認爲值true,true表示每次間隔結束後都會引發一次Elapsed事件,false表示僅在首次時間間隔後引發一次Elapsed事件。

Intervel:獲取兩次Elapsed事件的時間間隔,以毫秒爲單位,默認值爲100毫秒。

Start:啓動定時器。

Stop:停止定時器。

Elapsed:時間間隔後觸發的時間。

System.Web.UI.Timer

定時器,時間間隔執行異步或同步網頁回發。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章