Вставить многопоточный WindowsFormsHost в WPF - PullRequest
0 голосов
/ 28 августа 2018

У меня есть приложение WPF и элемент управления ActiveX, который встроен в приложение WPF с помощью элемента управления WindowsFormsHost.
Элемент управления ActiveX используется для связи с внешним приложением, которое рисует 3D-содержимое в элементе управления.

Одна большая проблема этой настройки заключается в том, что если элемент управления ActiveX выполняет некоторые длительные операции, остальная часть приложения WPF блокируется.
Я хотел бы решить эту проблему и каким-то образом предотвратить размещение элемента управления ActiveX в том же потоке, что и остальные элементы управления в моем пользовательском интерфейсе.

Я искал возможные решения и нашел эту статью:
https://blogs.msdn.microsoft.com/dwayneneed/2007/04/26/multithreaded-ui-hostvisual/

К сожалению, я не могу использовать этот образец для размещения элемента WindowsFormsHost, поскольку он не является производным от Visual. Единственный другой вариант, который я мог реализовать, - это разместить элемент управления ActiveX в отдельном окне, которое я запускаю в отдельном потоке.
Хотя это работает, управлять им довольно грязно, так как мне приходится вручную привязывать отдельное окно к главному окну, чтобы получить вид единого макета.

Есть ли что-нибудь еще, что я могу попробовать сделать в режиме «единого окна», но также иметь элемент управления ActiveX в отдельном потоке?

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