У меня есть приложение с возможностью загрузки некоторых плагинов (DLL).Это работает на WPF.Проблема заключается в лагах, когда плагин создает элементы управления пользовательского интерфейса.
В основном приложении у меня есть некоторые элементы управления.Я передаю эти ссылки плагину.Когда я вызываю метод плагина Show (), он должен добавить специальные элементы управления пользовательским интерфейсом в основное приложение.
Как создать элементы управления пользовательского интерфейса плагина в фоновом потоке и добавить их в основное приложение, если поток пользовательского интерфейса основного приложения неУ меня нет доступа к любому элементу управления, который был создан в другом потоке?
Я использую этот код в основном приложении:
if (!module.IsInitialized())
{
this.Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority.Background, new Action(
delegate()
{
module.InitializeComponents();
module.ShowModule();
}
));
}
где метод инициализации плагина:
public void InitializeComponents()
{
MyBodyArea = new SERPBodyArea(); // there is UI control
MyBottomArea = new SERPBottomArea(); // there is UI control
MyHeaderRibbon = new SERPXamRibbon(); // there is UI control
_IsInitialized = true;
}
Поэтому, когда плагин создает элементы управления пользовательским интерфейсом, мое основное приложение останавливается.Есть ли способ создать его в фоновом потоке и добавить его в главное окно приложения?
Спасибо.И извините за мой плохой английский: (.