Я не знаю ни о каком контроле, который делает то, что вы просите. Вот таймеры, с которыми я знаком:
- System.Threading.Timer (интервал) - генерирует повторяющиеся события (чисто числовое время без обновлений пользовательского интерфейса)
- System.Windows.Threading.DispatcherTimer (..) - использовать в многопоточном контексте (WPF / Silverlight)
- System.Windows.Forms.Timer () - Использовать цикл сообщений оконных форм (WinForms в основном потоке пользовательского интерфейса)
Я думаю, что вам лучше всего использовать DispatcherTimer с интервалом, скажем, 30 секунд, а затем сопоставить фактическое время с ожидаемыми временем и датой. Из того, что я помню, такие таймеры предназначены для небольших интервалов, поэтому большие интервалы будут менее точными. (Я говорю с коррекцией)
РЕДАКТИРОВАТЬ : Замечания MSDN о сроках : «Таймеры не гарантированно выполняются точно, когда происходит временной интервал, но они гарантированно не будут выполняться до того, как временной интервал наступит. Это это связано с тем, что операции DispatcherTimer помещаются в очередь Dispatcher , как и другие операции. Когда выполняется операция DispatcherTimer, зависит от других заданий в очереди и их приоритетов. "