В моем главном окне (Thread A), я создаю новую тему (Thread B), которая выполняет некоторую работу во время ожидания пользователя.Fire events from different thread
Thread B запускает события, если есть ошибка или требуется дополнительная информация от пользователя, Thread A будет прослушивать эти события.
В прослушивателе событий Thread A мне нужно показать диалоговое сообщение пользователю, у меня есть собственное диалоговое окно и показать его с помощью dialogWindow.showDialog()
. Это работает отлично, но вызывает ошибку, когда я пытаюсь установить владельца диалога, я делаю это dialogWindow.Owner = Window.GetWindow(this)
.
Ошибка, которую я получаю: Вызывающий поток не может получить доступ к этому объекту, потому что ему принадлежит другой поток.
Каков правильный способ прослушивания событий, которые запускаются из другого потока?
Спасибо, отлично работает. Я использую Invoke, а не BeginInvoke, но то же самое. – Drahcir
Пожалуйста, используйте BeginInvoke Invoke, который не освободит дескриптор. – peterincumbria