Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 每个MAF加载项的UI线程_C#_Wpf_Multithreading_Appdomain_Maf - Fatal编程技术网

C# 每个MAF加载项的UI线程

C# 每个MAF加载项的UI线程,c#,wpf,multithreading,appdomain,maf,C#,Wpf,Multithreading,Appdomain,Maf,我在WPF中使用,在UI线程方面有问题。我希望我激活的每个加载项都成为唯一的UI线程 我为什么想要你可能想知道的东西?我试着解释:——) 我有一个主机应用程序,它是加载项的容器。不同的人为主持人开发插件。如果开发人员在其加载项中启动一个长过程,而他们忘记在线程中调用或启动该过程,则主机将冻结,因为主机和加载项共享同一UI线程 每个加载项在单独的appdomain中运行。关于每一个提示,我都很高兴。您可以尝试以下方法: Thread thread = new Thread(() => {

我在WPF中使用,在UI线程方面有问题。我希望我激活的每个加载项都成为唯一的UI线程

我为什么想要你可能想知道的东西?我试着解释:——)

我有一个主机应用程序,它是加载项的容器。不同的人为主持人开发插件。如果开发人员在其加载项中启动一个长过程,而他们忘记在线程中调用或启动该过程,则主机将冻结,因为主机和加载项共享同一UI线程


每个加载项在单独的appdomain中运行。关于每一个提示,我都很高兴。

您可以尝试以下方法:

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();