標籤:回調 hang call port sys 佔用 ted 託管 wait
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(); // 啟動Timerpublic void Stop(); // 停止Timerpublic 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);
C# - 計時器Timer