C# 从所有线程获取所有窗口

C# 从所有线程获取所有窗口,c#,.net,wpf,multithreading,dispatcher,C#,.net,Wpf,Multithreading,Dispatcher,我在应用程序中启动一些线程,如 this.Thread = new Thread(() => { System.Windows.Threading.Dispatcher.CurrentDispatcher.BeginInvoke(new Action(() => { ... ... })); System.Windows.Threading.Dispatcher.Run();

我在应用程序中启动一些线程,如

  this.Thread = new Thread(() =>
  {
      System.Windows.Threading.Dispatcher.CurrentDispatcher.BeginInvoke(new Action(() =>
      {
         ...
         ...

      }));
      System.Windows.Threading.Dispatcher.Run();
                           }) { IsBackground = true, Name = Constants.SPECIAL_UI_THREAD_NAME};
  this.Thread.SetApartmentState(ApartmentState.STA);
  this.Thread.CurrentCulture = Thread.CurrentThread.CurrentCulture;
  this.Thread.CurrentUICulture = Thread.CurrentThread.CurrentUICulture;
  this.Thread.Start();
它们都有一个生成并显示的窗口。 现在,当我在主线程中使用

Application.Current.Windows

我没有获得额外线程的窗口


如何获取应用程序所有线程的所有窗口?

除了应用程序的主线程外,不应在任何线程上创建窗口。相反,在主应用程序线程上创建所有窗口,并使用其他线程(例如任务并行库)异步工作,以便主应用程序的线程(因此UI)保持响应。

由于窗口创建的性能,我需要在其他线程上创建窗口。这一切都很好。现在我遇到了从其他线程获取窗口的问题。@t.kehl“创建窗口的性能”非常好,而且总是足够好。也许获取数据需要太多时间。然后将其移动到一个线程。@Henk Holterman-但我的问题不是在线程中创建窗口-这在这里工作得很好,我不能更改它-相反,我正在寻找一种方法来获取在不同线程中创建的所有窗口。@t.kehl-你必须自己创建一个小的管理。