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