У меня есть .NET Windows Service (.NET 3.5) с таймером (System.Timers.Timer
). Метод OnElapsed
выглядит следующим образом:
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
() порождает несколько потоков для выполнения определенной работы.
Как мне решить эту проблему?