2010-02-22 4 views
2

Я хотел бы знать, какие таймеры могут использоваться в приложении C# и каковы их последствия в терминах cuncurrency в многопоточной среде.
Не могли бы вы объяснить мне или связать меня с эзотерическим учебником?
Спасибо.Таймеры в приложении .NET

ответ

7

Существует две формы таймеров: те, которые основаны на сообщениях, и обычно ориентированы на пользовательский интерфейс, и те, которые основаны на потоках.

Варианты пользовательского интерфейса: Timer class from Windows Forms или DispatcherTimer in WPF. Они, как правило, сообщают о таймингах (обычно) в потоке пользовательского интерфейса и в основном используют стандартный насос сообщений для обработки времени.

Классы System.Timers.Timer и System.Threading.Timer используют отдельный поток для обработки таймеров. Они работают очень хорошо, но события «Tick» происходят в отдельном потоке. Это означает, что вам нужно обрабатывать синхронизацию потоков или синхронизацию потоков пользовательского интерфейса, если вы их используете.