我在我的应用程序中启动一些线程,如
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
我没有得到我的额外线程的窗口。
如何获取应用程序所有线程的所有窗口?
答案 0 :(得分:0)
您不应该在应用程序主线程以外的任何线程上创建窗口。相反,在主应用程序线程上创建所有窗口并使用其他线程(例如任务并行库)异步工作,以便主应用程序的线程(以及UI)保持响应。