Управление смещением от фоновой нити к основной нити - PullRequest
1 голос
/ 17 марта 2009

У меня есть нить, которая отслеживает состояние устройства (используя ввод / вывод). Это вызовет событие для нескольких частей пользовательского интерфейса (Forms / Dialogs ..) о состоянии соединения (Подключено, Отключено, Ошибка). На основании этого статуса формы и диалоги уничтожаются, создаются, включаются и отключаются.

Моя проблема:

   I getting Cross-Thread exception because the thread doing the operations like Dispose the from, create the from .... .  I using smart client, forms and dialogs are part of the WorkItemController and i just terminating that. 

Я не хочу, чтобы вы использовали Invoke или BeginInvoke. Я хочу, чтобы эта тема продолжала только мониторинг статуса. ТАК, что этот поток должен передать свой контроль основному потоку, а основной поток закроет форму или создаст форму.

Просто я хочу, как перенести управление из одного потока в другой. Есть ли какой-нибудь способ?

1 Ответ

1 голос
/ 17 марта 2009

Лучшее решение - использовать Invoke для возврата к вашей основной теме.

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

Или используйте System.Windows.Forms.Timer, поскольку он выполняется в главном потоке.

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