Тема обратного вызова таймера - PullRequest
0 голосов
/ 10 февраля 2011

Я думал о том, как работают таймеры, и есть кое-что, что я не до конца понимаю.
A Timer использует событие, которое вызывается, когда время истекает.Я предполагаю, что это вызвано событием ОС, которое управляет часами (или управляется часами).
Но я не уверен, какой поток будет перехватывать это событие ..у объекта есть собственный поток?
Или событие будет вызвано в потоке, который создал объект таймера?

РЕДАКТИРОВАТЬ:

И есть ли разница в этом аспекте между System.Timers.Timer и System.Windows.Forms.Timer?

1 Ответ

9 голосов
/ 10 февраля 2011

Это зависит от Timer. Если вы используете System.Windows.Forms.Timer, событие тика будет обработано в потоке пользовательского интерфейса. В System.Threading.Timer и System.Timers.Timer по умолчанию используется поток пула потоков. Однако в последнем случае вы можете указать SynchronizingObject, который можно использовать для перенаправления обработчика в соответствующий поток.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...