2015-07-22 7 views
0

В моем элементе управления WPF я реализовал асинхронный шаблон для выполнения задач без интерфейса пользователя следующим образом.Хостинг WPF-контроль в приложении Windows Forms

internal static void Execute(Action action) 
    { 
     if (System.Windows.Application.Current != null) 
     { 
      if (System.Windows.Application.Current.Dispatcher.CheckAccess()) 
       action(); 
      else 
       System.Windows.Application.Current.Dispatcher.BeginInvoke(action, null).Wait(); 
     } 
    } 

Это прекрасно подходит для приложений WPF. Когда я использовал свой элемент управления WPF в приложении Windows Forms с помощью ElementHost, я не могу использовать вышеуказанный метод, так как System.Application.Current будет null.

Теперь я должен знать следующее.

1) Возможно ли получить доступ к потоку пользовательского интерфейса в моем элементе управления WPF, когда элемент управления размещен в приложении Windows Forms?

2) Если возможно, любезно посоветуйте мне, как его достичь.

+0

[BackgroundWorker Class] (https://msdn.microsoft.com/en-us/library/system.componentmodel.backgroundworker (v = vs.110) .aspx) именно для этой цели – Fabio

ответ

0

Я нашел ответ. Это делает только активация экземпляра приложения.

if (Application.Current == null) новый Application();

Смежные вопросы