我們都知道Timer是為了週期性執行而設計的Class,而在.Net Framework中有四種Timer,在下列了一個表來說明這四個的差異。
| System.Window.Forms.Timer | System.Timers.Timer | System.Threading.Timer | System.Web.UI.Timer |
特色 | 用在Window Form,因為是單一執行緒的設計,與Window Form都是使用同一個執行緒,正確率限制在 55 毫秒。 | 多執行緒環境下使用背景工作執行緒而設計的。比System.Window.Forms.Timer更為精確。 | 簡單的輕量計時器。不建議搭配 Windows Form 使用。 | 網頁專用 |
使用方式 | Tick事件 | Elapsed事件 | 委派(計時器建構時指定的,無法變更) | Tick事件 |
圖型介面 | 有 | 有(必需自行加入工具箱) | 無 | 有 |
直接修改用者介面項目* | 可 | 可(需設定SynchronizingObject) | 不可 | 可 |
版本支持 | .NET Framework 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0, 1.1, 1.0 .NET Compact Framework 3.5, 2.0, 1.0 | .NET Framework 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0, 1.1, 1.0 | .NET Framework 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0, 1.1, 1.0 .NET Compact Framework 3.5, 2.0, 1.0 XNA Framework 1.0 | .NET Framework 3.5 |
組件 | System.Windows.Forms.dll | System.dll | mscorlib.dll | System.Web.Extensions.dll |
時間刻度 | 毫秒 | 毫秒 | 毫秒 | 毫秒 |
使用難度 | 底 | 高 | 中 | 中 |
可被繼承 | 可 | 可 | 不可 | 可 |
註
在Window Form中與UI不同的執行緒,是不能修改用者介面項目 (例如表單或控制項),這執行緒通常稱為使用者介面執行緒(UI Thread)
若有缺漏,請見諒,如需詳細資訊請參考下列資訊。
參考
建立計時器架構伺服器工作
http://msdn.microsoft.com/zh-tw/library/28e377k1.aspx
System.Timers.Timer
http://msdn.microsoft.com/zh-tw/library/system.timers.timer.aspx
System.Threading.Timer
http://msdn.microsoft.com/zh-tw/library/system.threading.timer.aspx
System.Window.Forms.Timer
http://msdn.microsoft.com/zh-tw/library/system.windows.forms.timer.aspx
System.Web.UI.Timer
http://msdn.microsoft.com/zh-tw/library/system.web.ui.timer.aspx