из второго потока.
я есть основной поток пользовательского интерфейса, который запускает приложение и создает форму главного окна (давайте назовем егоW
). У меня также есть дополнительный поток, который я раскручиваю и который создает диалоговое окно (давайте назовем егоB
).
Я хочу установить владельца диалогаB
быть главным окномW
, НастройкаB
владелец происходит в потоке, который создалB
, В основном:
b.Owner = w;
но это вызывает перекрестное исключение, говорящее мне, что я пытаюсь получить доступ кW
объект из неправильного потока.
Поэтому я попытался выполнить код в основном потоке пользовательского интерфейса, используяControl.Invoke
наW
, Но тогда я получаю ту же ошибку, сообщая мне, что я пытаюсь получить доступB
из неверной ветки:
System.InvalidOperationException was unhandled by user code
Message=Cross-thread operation not valid: Control 'B' accessed from a
thread other than the thread it was created on.
Source=System.Windows.Forms
Как я должен сделать это правильно?