我有一個System.Timer設置,每天凌晨2點觸發一個事件。 如果定時器啓動失敗,我希望定時器 重置爲每15分鐘運行一次,直到該過程成功完成。Interval屬性發生變化時System.Timer的行爲
// this is how the timer is set up.
// this is working correctly.
double startTime = milliseconds_of_hour_to_start.
Timer = new System.Timers.Timer(startTime);
以下是在成功或失敗事件處理程序時重置計時器的代碼。 注意計時器沒有被停止, 只是Interval屬性被重置。
if (ProcessSuccess)
{
Timer.Interval = TimeSpan.FromHours(24).TotalMilliseconds;
}
else
{
Timer.Interval = TimeSpan.FromMinutes(15).TotalMilliseconds;
}
我的問題是這樣的,如果進程失敗說4次,那麼成功將計時器現在運行在大約3AM? 即在失敗後2AM的原始開始時間提前15分鐘?
對於未來的實現,可能需要查看http://quartznet.sourceforge.net/。我總是喜歡看看現在可以重用的庫,而不是自己寫 – 2010-05-05 10:55:46