2009-08-30 53 views

回答

1

看看this有幫助。

編輯:除了以上,我認爲定時器的區間容量不同。
我記得有一次在dotnetrocks節目中聽說過它。我會盡力找出答案。

編輯2:也看看MSDN頁面上的人爲每個類添加的注意事項。
http://msdn.microsoft.com/en-us/library/system.timers.timer.aspx
http://msdn.microsoft.com/en-us/library/system.threading.timer.aspx
http://msdn.microsoft.com/en-us/library/system.threading.timer.aspx
http://msdn.microsoft.com/en-us/library/system.windows.forms.timer.aspx(這表示,它是用於Windows應用進行優化。因此,應該在窗口應用程序中使用)。

IMO,定時器的功能不同。所以,你將必須決定哪一個適合你的需要,保持在上面記住

1

據我所知,它們之間沒有性能差異 - 與執行邏輯所需的時間相比在計時器已過去的事件處理程序中執行。重要的區別是:

  • Timers.Timer和Threading.Timer從單獨的Threading.ThreadPool線程中引發事件。
  • Forms.Timer從UI線程中引發事件。
  • Timers.Timer可以作爲一個組件放在窗體上。
  • Forms.Timer具有更友好的用戶界面。

挑一個取決於您的需求。如果您對計時器過期事件的響應是一種背景工作,必須獨立於UI進行,那麼您需要Timers.Timer或Threading.Timer。如果您對計時器已過的事件的響應是某種形式的視覺反饋,那麼您需要Forms.Timer。

就我個人而言,我會創建一個自定義定時器抽象/接口,並創建三個基於.NET定時器的實現。這將使您在理論上可以在不改變代碼的情況下在不同類型的定時器之間切換。

相關問題