【问题标题】:UI thread for each MAF AddIn每个 MAF 插件的 UI 线程
【发布时间】:2011-06-28 08:43:17
【问题描述】:

我在 WPF 中使用 MAF,但我遇到了 UI 线程问题。我希望我激活的每个 AddIn 都成为一个唯一的 UI 线程。

为什么我想要你可能想知道?我试着解释一下:-)

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

每个插件都在单独的应用程序域中运行。关于每一个提示我都会很高兴。

【问题讨论】:

    标签: c# wpf multithreading appdomain maf


    【解决方案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();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-05-18
      • 1970-01-01
      • 2010-12-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多