System.Timers.Timer - обработчик событий - PullRequest
1 голос
/ 13 апреля 2010

Не удается найти ответ на мой вопрос в MSND: гарантирует ли класс Timer, что все обработчики, подписанные на событие Elapsed, будут выполняться в одном потоке пула потоков?Если да, будут ли они выполняться в соответствии с порядком, в котором они были добавлены в событие Elapsed?Спасибо

1 Ответ

1 голос
/ 13 апреля 2010

Насколько я вижу, единственный способ убедиться, что обработчики событий Elapsed находятся в одном потоке, - установить свойство Timer SynchronizingObject (обычно это элемент управления или что-то в форме, чтобы событие Elapsed обрабатывается в потоке пользовательского интерфейса). В противном случае событие обрабатывается в потоке потоков, что означает, что каждый раз он может быть одним и тем же потоком, но почти наверняка не будет.

См .: http://msdn.microsoft.com/en-us/library/system.timers.timer.elapsed.aspx

Порядок срабатывания обработчиков событий , вероятно , будет в том порядке, в котором вы их добавили, но это не гарантируется и может измениться в будущем. Если ваш дизайн зависит от событий, запускаемых в определенном порядке, вы должны изменить свой дизайн.

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