System.Timers.Timer
服務器計時器,允許指定在應用程序中引發事件的重復時間間隔。
using System.Timers; // 在應用程序中生成定期事件 public class Timer : Component, ISupportInitialize { public double Interval { get; set; } public bool Enabled { get; set; } // 開始/停止引發事件Elapsed public Timer(); public Timer(double interval); public void Start(); // 啟動Timer public void Stop(); // 停止Timer public void Close(); // 關閉Timer並釋放其占用的資源 // 釋放當前Timer使用的所有資源 // true:釋放托管資源和非托管資源;false:僅釋放非托管資源 protected override void Dispose(bool disposing); public event ElapsedEventHandler Elapsed; }
其中, public delegate void ElapsedEventHandler(object sender, ElapsedEventArgs e);
使用示例:
// 定時觸發OnEventClick函數 System.Timers.Timer MyTimer = new System.Timers.Timer(); MyTimer.Elapsed += OnEventClick; MyTimer.Interval = 3 * 1000; MyTimer.Enabled = true;
System.Threading.Timer
線程計時器,允許在線程池線程上執行回調方法。
using System.Timers; // 提供以指定的時間間隔執行方法的機制 public sealed class Timer : MarshalByRefObject, IDisposable { public Timer(TimerCallback callback); public Timer(TimerCallback callback, object state, xxx); public bool Change(int dueTime, int period); public void Dispose(); // 釋放當前Timer實例使用的所有資源 public bool Dispose(WaitHandle notifyObject); // 同時釋放信號 }
其中, public delegate void TimerCallback(object state);