Как выполнить метод в определенное время?
Подскажите, пожалуйста, как на C# можно выполнить метод в определенное время? Например, каждый день в 14.00 он должен выполняться.
Источник: Stack Overflow на русском
Подскажите, пожалуйста, как на C# можно выполнить метод в определенное время? Например, каждый день в 14.00 он должен выполняться.
Самый простой и незамысловатый способ - сделать таймер, срабатывающий один раз в минуту и проверяющий время. Как только совпадение - вызываем. =)
if ((Hour == System.DateTime.Now.Hour) &&
(Minute == System.DateTime.Now.Minute))
{
Nya();
}
Вызывать чаще смысла особого, думаю, нет.
private void SetTimer() {
timer1.Stop();
var timeToAlarm = DateTime.Now.Date.AddHours(...).AddMinutes(...);
if (timeToAlarm < DateTime.Now)
timeToAlarm.AddDays(1);
timer1.Interval = (int)(timeToAlarm - DateTime.Now).TotalMilliseconds;
timer1.Start();
}
и таймер будет вызван только в нужный момент.