.NET Framework中定时器timer的单线程与多线程使用区别如何体现为长尾关键词?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1761个文字,预计阅读时间需要8分钟。
如果需要使用规则的时间间隔重复执行某些方法,最简单的方式是使用定时器(timer)。与下面的例子相比,定时器可以更方便、更高效地使用内存和资源:
csharpnew Thread(()=> { while (enable) { // 执行任务 }})();
如果你需要使用规律的时间间隔重复执行一些方法,最简单的方式是使用定时器(timer)。与下边的例子相比,定时器可以便捷、高效地使用内存和资源:
new Thread (delegate() { while (enabled) { DoSomeAction(); Thread.Sleep (TimeSpan.FromHours (24)); } }).Start();
这不仅仅会永久占用一个线程,而且如果没有额外的代码,DoSomeAction每天都会发生在更晚的时间。定时器解决了这些问题。
.NET Framework 提供了 4 种定时器。下边两个类是通用的多线程定时器:
(1)System.Threading.Timer
(2)System.Timers.Timer
另外两个是专用的单线程定时器:
(3)System.Windows.Forms.Timer (Windows Forms 的定时器)
(4)System.Windows.Threading.DispatcherTimer (WPF 的定时器)
多线程定时器更加强大、精确并且更加灵活,而单线程定时器对于一些简单的更新 Windows Forms 和 WPF 控件的任务来说是安全的,并且更加便捷。
1.多线程定时器Permalink
System.Threading.Timer是最简单的多线程定时器:它仅仅有一个构造方法和两个普通方法(取悦于极简主义者,还有本书作者!)。
本文共计1761个文字,预计阅读时间需要8分钟。
如果需要使用规则的时间间隔重复执行某些方法,最简单的方式是使用定时器(timer)。与下面的例子相比,定时器可以更方便、更高效地使用内存和资源:
csharpnew Thread(()=> { while (enable) { // 执行任务 }})();
如果你需要使用规律的时间间隔重复执行一些方法,最简单的方式是使用定时器(timer)。与下边的例子相比,定时器可以便捷、高效地使用内存和资源:
new Thread (delegate() { while (enabled) { DoSomeAction(); Thread.Sleep (TimeSpan.FromHours (24)); } }).Start();
这不仅仅会永久占用一个线程,而且如果没有额外的代码,DoSomeAction每天都会发生在更晚的时间。定时器解决了这些问题。
.NET Framework 提供了 4 种定时器。下边两个类是通用的多线程定时器:
(1)System.Threading.Timer
(2)System.Timers.Timer
另外两个是专用的单线程定时器:
(3)System.Windows.Forms.Timer (Windows Forms 的定时器)
(4)System.Windows.Threading.DispatcherTimer (WPF 的定时器)
多线程定时器更加强大、精确并且更加灵活,而单线程定时器对于一些简单的更新 Windows Forms 和 WPF 控件的任务来说是安全的,并且更加便捷。
1.多线程定时器Permalink
System.Threading.Timer是最简单的多线程定时器:它仅仅有一个构造方法和两个普通方法(取悦于极简主义者,还有本书作者!)。

