2011-06-28 83 views
0

我在WPF中使用MAF,並且我在UI線程中遇到問題。我希望每個我激活的AddIn都成爲一個獨特的UI線程。每個MAF的UI線程AddIn

爲什麼我想要你可能想知道?我試圖解釋:-)

我有一個主機應用程序,它是一個插件的容器。不同的人爲主機開發插件。如果開發人員在其插件中啓動了一個長程序,並且他們忘記在線程中調用或啓動該過程,則主機將凍結,因爲主機和插件共享相同的UI線程。

每個插件運行在一個獨立的appdomain中。關於每一個提示,我都會很高興。

回答

1

,你可以試試下面的辦法:

Thread thread = new Thread(() => 
{ 
Window1 w = new Window1(); 
w.Show(); 

//make sure to stop the Dispatcher when window is closed 
w.Closed += (s, e) => w.Dispatcher.InvokeShutdown(); 
//start the message pump 
System.Windows.Threading.Dispatcher.Run(); 
}); 

thread.SetApartmentState(ApartmentState.STA); 
thread.Start();