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-你必须自己创建一个小的管理。