Таймеры внутри детской формы - PullRequest
0 голосов
/ 09 ноября 2011

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

1 Ответ

2 голосов
/ 09 ноября 2011

System.Windows.Forms.Timer вызовет событие Tick в том же потоке, в котором он был создан, поэтому, если родительское приложение каким-либо образом блокирует основной поток, код в событии Tick не будет запущен, пока поток не очиститсяэто может быть причиной проблемы, которую вы видите, однако остальная часть пользовательского интерфейса также не должна реагировать в этом сценарии.System.Timers.Timer вызовет событие Tick в отдельном потоке, однако это будет бесполезно, если ваш поток пользовательского интерфейса в любом случае блокируется, так как это помешает вам обновить панель инструментов, даже если код выполняется.

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