выполнить таймер, когда сразу после запуска?
у меня есть таймер с интервалом 3600000, который можно перевести в час, поэтому, когда я делаю
timer.Start()
он будет выполнять код ниже в каждый час, начиная со следующего часа
private void timer_Tick(object sender, EventArgs e)
{
.....
}
но что, если я хочу, чтобы он также выполнялся во второй раз, когда я вызываю таймер.Start (), а затем каждый час после?
3 ответов
самым простым вариантом было бы просто вызвать метод:
timer.Start();
timer_Tick(null, EventArgs.Empty); // Simulate a timer tick event
это фактически не вызывает таймер, но немедленно вызывает обработчик, эффективно имитируя событие "сейчас".
Как я понимаю System.Threading.Timer
делает именно то, что вы хотите.
Он позволяет указать, когда должен произойти первый вызов, а затем интервал между вызовами.
поэтому, если вы установите первый вызов в 0 миллисекунд, а интервал в час, он будет срабатывать немедленно, а затем каждый час.
dueTime Тип: Система.Int32 время задержки до обратного вызова вызывается, в миллисекундах. Укажите Время Ожидания.Бесконечные предупреждения этот таймер запуска. Укажите ноль (0) для немедленного запуска таймера.
тип периода: система.Int32 временной интервал между вызовами обратный звонок, в миллисекундах. Укажите Время Ожидания.Бесконечное отключение периодическая сигнализация.