C# 的定时器的实现方法有 3 种:
(1)使用 System.Windows.Forms.Timer
(2)使用 System.Threading.Timer
(3)使用 System.Timers.Timer
其中:
System.Windows.Forms.Timer 只能在 WinForm 中使用,通过Windows消息机制实现的,类似于 VB 或 Delphi 中的 Timer 控件,内部使用 API SetTimer 实现的。
它的主要缺点是计时不精确,而且必须有消息循环,因此在 Console Application (控制台应用程序)中无法使用。
System.Timers.Timer 和 System.Threading.Timer 非常类似,它们是通过.NET Thread Pool实现的,轻量,计时精确,对应用程序、消息没有特别的要求。
System.Timers.Timer 还可以应用于WinForm,完全取代上面的 Timer 控件。
它们的缺点是不支持直接的拖放,需要手工编码。
说明:在控制台下,如果要看得到 倒计时 的效果,需要在最后加一句 Console.ReadLine(); ,否则是看不到效果的(参下)。
先讲讲
System.Timers.Timer 的使用:
MSDN 的示例:
//Timer.cs
using System;
using System.Timers;
public class Timer1
{
//定义一个 类级别 的 Timer
private static System.Timers.Timer aTimer;
//如果 不是 类级别 的 Timer,我们应该使用 GC.KeepAlive(aTimer); 来维持变量的存在。
//一般