Net Framework 4个Timer(网络收集整理)
在 Visual Studio .NET 和 .NET Framework 中有四种计时器控件:
(前边三种转载自 http://blog.csdn.net/aptentity/article/details/5771179)
第一:线程计时器 System.Threading.Timer
线程计时器是一种简单的、轻量级计时器,使用回调方法而不是事件,并由线程池线程提供。
第二:Windows 计时器 System.Windows.Forms.Timer
基于 Windows 的标准计时器,位于“工具箱”的“Windows 窗体”选项卡上,以及仅可在编程时使用的线程计时器。
基于 Windows 的计时器从 Visual Basic 的 1.0 版起就存在于该产品中并且基本上保持不变。该计时器已经为在 Windows 窗体应用程序中使用而进行了优化。
Windows 计时器是为单线程环境设计的,其中,UI线程用于执行处理。Windows 计时器的精度限定为55 毫秒。这些传统计时器要求用户代码有一个可用的 UI 消息泵,而且总是在同一个线程中操作,或者将调用封送到另一个线程。对于 COM 组件来说,这样会降低性能。
通俗的说使用这个计时器执行方法的时候画面会卡住,而另外2个你不需要为了执行效率,为其执行的方法开线程。
第三:服务器计时器 System.Timers.Timer
基于服务器的计时器,位于“工具箱”的“组件”选项卡上;
基于服务器的计时器是传统的计时器为了在服务器环境上运行而优化后的更新版本。
基于服务器的计时器是为在多线程环境下与辅助线程一起使用而设计的。由于它们使用不同的体系结构,因此基于服务器的计时器可能比 Windows 计时器精确得多。服务器计时器可以在线程之间移动来处理引发的事件。
服务器Timer很明显是另开一个线程计时,每一个Timer是一个独立的线程,独立的计时,所以精度非常高,并且Elapsed事件是在独立的线程上触发的。
第四:System.Windows.Threading.DispatcherTimer(WPF timer);
这个是wpf 到定时器,没用过,可以参考这个资料:http://blog.csdn.net/hugoandpig/article/details/7743452