2
我正在使用計時器在每個時間間隔上安排一項作業。 似乎計時器已過去的事件被觸發不止一次。System.Timers.Timer在Windows服務中多次觸發已使用事件
下面一個代碼示例:
private static System.Timers.Timer _timer = new System.Timers.Timer();
protected override void OnStart(string[] args)
{
_timer.Elapsed += new System.Timers.ElapsedEventHandler(OnTimedEvent);
_timer.Interval = 1000;
_timer.Enabled = true;
_timer.Start();
}
private void OnTimedEvent(object source, System.Timers.ElapsedEventArgs e)
{
_timer.Enabled = false;
_timer.Stop();
//Do the job
_timer.Enabled = true;
_timer.Start();
}
你能幫助我嗎? 謝謝
您不需要同時調用已啓用和開始 - 從MSDN:'開始() - 通過將啓用設置爲true來開始引發Elapsed事件*' – Blachshma
這是您代碼中的錯誤。不止一次啓動該服務,您將爲其添加另一個事件處理程序。 –