我們都知道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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述
2007-08-25 Visual Studio 2005 Add-ins and Tools and Utilities