У меня есть служба Windows, которая в методе запуска создает таймер и немедленно запускает таймер. Таймер — это длительная задача, поэтому служба при запуске в services.msc обнаруживается как ошибка. Он думал, что таймер ниже работает в отдельном потоке, и служба должна запускаться немедленно?
Если я удалю строку ниже, она будет работать нормально, но я хочу, чтобы служба запускалась после запуска службы.
_timer_Elapsed(null, null);
Удаление этой строки устраняет проблему, но я хочу этого:
protected override void OnStart(string[] args)
{
_timer = new System.Timers.Timer();
_timer.AutoReset = false;
_timer.Interval = (Convert.ToInt32(ConfigurationManager.AppSettings["CheckInterval"]));
_timer.Elapsed += new System.Timers.ElapsedEventHandler(_timer_Elapsed);
_timer.Enabled = true;
_timer.Start(); // Get the timer to execute immediately
_timer_Elapsed(null, null); // Get the timer to execute immediately
}