我有一個帶有定時器(System.Timers.Timer
)的.NET Windows服務(.NET 3.5)。該OnElapsed
方法是這樣的:Windows服務已啓動,但什麼都不做 - .NET
private void OnTimerElapsed(object source, ElapsedEventArgs e)
{
lock (this)
{
timer.Stop();
//process some stuff here..
ProcessStuff();
timer.Interval = GetTimerInterval();
timer.Start();
}
}
它,直到它神祕地停止工作,工作正常。這種情況每隔x天發生一次,儘管該服務具有啓動狀態,但它並未啓動ProcessStuff
()方法。我使用log4net
,並且在那裏或在Windows事件日誌中沒有記錄任何內容。 ProcessStuff
()會產生多個線程來完成一些工作。
我該如何解決這個問題?
我們需要更多的數據來診斷正在發生的事情......您是否嘗試過使用調試器來檢查服務中線程的狀態?根據ProcessStuff()和GetTimerInterval()的作用,你可以掛在某處等待這些函數完成。 – 2010-02-26 21:39:29