Как выполнить метод в определенное время?

Рейтинг: 2Ответов: 2Опубликовано: 23.03.2011

Подскажите, пожалуйста, как на C# можно выполнить метод в определенное время? Например, каждый день в 14.00 он должен выполняться.

Ответы

▲ 2Принят

Самый простой и незамысловатый способ - сделать таймер, срабатывающий один раз в минуту и проверяющий время. Как только совпадение - вызываем. =)

if ((Hour == System.DateTime.Now.Hour) &&
    (Minute == System.DateTime.Now.Minute))
{
   Nya();
}

Вызывать чаще смысла особого, думаю, нет.

▲ 6
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();
}

и таймер будет вызван только в нужный момент.