在C#中,主要有三种类型的Timer:
System.Windows.Forms.Timer
System.Timers.Timer
System.Threading.Timer
以下是每种Timer的简要说明和示例:
1. System.Windows.Forms.Timer
用于Windows Forms应用程序,适合在UI线程中使用。
using System;
using System.Windows.Forms;public class WinFormsTimerExample : Form
{private Timer timer;public WinFormsTimerExample(){timer = new Timer();timer.Interval = 1000; // 1秒timer.Tick += new EventHandler(OnTimerEvent);timer.Start();}private void OnTimerEvent(Object sender, EventArgs e){Console.WriteLine("WinForms Timer ticked at: " + DateTime.Now);}[STAThread]public static void Main(){Application.Run(new WinFormsTimerExample());}
}
2. System.Timers.Timer
适用于需要更精确的计时和跨线程操作的场景。
using System;
using System.Timers;public class TimersTimerExample
{private static Timer timer;public static void Main(){timer = new Timer(1000); // 1秒timer.Elapsed += OnTimedEvent;timer.AutoReset = true;timer.Enabled = true;Console.WriteLine("Press Enter to exit the program...");Console.ReadLine();}private static void OnTimedEvent(Object source, ElapsedEventArgs e){Console.WriteLine("Timers Timer ticked at: " + e.SignalTime);}
}
3. System.Threading.Timer
用于多线程环境,可以在任何线程上执行回调。
using System;
using System.Threading;public class ThreadingTimerExample
{private static Timer timer;public static void Main(){TimerCallback callback = new TimerCallback(OnTimerEvent);timer = new Timer(callback, null, 0, 1000); // 1秒Console.WriteLine("Press Enter to exit the program...");Console.ReadLine();}private static void OnTimerEvent(Object state){Console.WriteLine("Threading Timer ticked at: " + DateTime.Now);}
}
通过这些示例,可以快速掌握每种Timer的使用场景和方法。