Windows.Forms.Timer
использует цикл сообщений оконных форм для обработки событий таймера. Его следует использовать при записи событий синхронизации, которые используются в приложениях Windows Forms, и вы хотите, чтобы таймер срабатывал в основном потоке пользовательского интерфейса.
DispatcherTimer
- механизм синхронизации WPF. Его следует использовать, когда вы хотите обрабатывать синхронизацию аналогичным образом (хотя это не ограничивается одним потоком - каждый поток имеет своего диспетчера) и вы используете WPF. Событие запускается в том же потоке, что и диспетчер.
В общем WPF == DispatcherTimer
и Windows Forms == Forms.Timer
.
При этом существует также System.Threading.Timer
, который является таймером class
, который запускается в отдельном потоке. Это хорошо для чисто числовой синхронизации, когда вы не пытаетесь обновить пользовательский интерфейс и т. Д.