Я занимаюсь разработкой службы Windows, которая должна выполнять несколько задач в разные периоды.
В настоящее время у меня есть два таймера, полный таймер и запасной таймер, работающие с разными интервалами, определенными, как показано ниже.
fullTimer = new System.Timers.Timer();
fullTimer.Elapsed += new ElapsedEventHandler(OnElapsedTime);
fullTimer.Interval = Convert.ToDouble(interval * 1000);
fullTimer.AutoReset = true;
fullTimer.Start(); // or fullTimer.Enabled = true;
GC.KeepAlive(fullTimer);
stockTimer = new System.Timers.Timer();
stockTimer.Elapsed += new ElapsedEventHandler(StockOnElapsedTime);
stockTimer.Interval = Convert.ToDouble(stockInterval * 1000);
stockTimer.AutoReset = true;
stockTimer.Start();
GC.KeepAlive(stockTimer);
Может кто-нибудь понять, почему таймеры не будут срабатывать. Я получаю действительно странное поведение. Если я запускаю обработчик запасов вручную
StockOnElapsedTime(null,null);
Таймер продолжает работать правильно.