Событие «Elapsed» моего таймера срабатывает дважды при запуске программы.Единственное назначение обработчика событий Elapsed - метод Main.Есть ли что-то, что я делаю не так?
//class level clock
public static System.Timers.Timer Clock;
static void Main(string[] args)
{
Clock = new System.Timers.Timer();
Clock.Elapsed += new ElapsedEventHandler(Clock_Elapsed);
Clock.AutoReset = false;
Clock.Interval = timerInterval; //this needs to be in milliseconds!
Clock.Enabled = true;
//run infinite loop until q is pressed
while (Console.Read() != 'q')
{}
}
static void Clock_Elapsed(object sender, ElapsedEventArgs e)
{
Clock.Stop();
//do some stuff
Clock.Start();
}
ОБНОВЛЕНИЕ:
Функция автоматического сброса, предоставленная @ fparadis2, дважды исправила стрельбу.Основная проблема заключалась в том, что мой интервал таймера был установлен на 30 миллисекунд вместо 30000 миллисекунд (30 секунд), чтобы событие имело двойной запуск.