我得到了一个类似于此示例中一个单独的线程中打开一个模式WPF窗口控制台应用程序:线程上的WPF ShowDialog:停止调度程序需要?
http://reedcopsey.com/2011/11/28/launching-a-wpf-window-in-a-separate-thread-part-1/
// Create a thread
Thread newWindowThread = new Thread(new ThreadStart(() =>
{
// Create and show the Window
Window1 tempWindow = new Window1();
tempWindow.Show();
// Start the Dispatcher Processing
System.Windows.Threading.Dispatcher.Run();
}));
但我使用ShowDialog的,而不是显示。 我看到的是,在这种情况下,我不需要启动调度程序线程。 ShowDialog似乎是在hoot下做的。 但是关于调度程序线程的关闭呢?在这种情况下,我是否需要明确地通过呼叫InvokeShutdown? 或者窗口句柄上的close方法已经完成了吗?
不幸的是,我需要这样做,因为我必须处理遗留的应用程序。在某些情况下,该应用程序需要显示模式对话框。所以现在没有其他办法了。 – DanielG
如果您必须将对话框放入遗留应用程序中,我会考虑使用[p-invoke](http://stackoverflow.com/questions/3364681/message-box-in-front-of-all-windows-in-console (应用程序)到[MessageBox](https://msdn.microsoft.com/en-us/library/windows/desktop/ms645505(v = vs.85).aspx)将具有最小的占用空间。你不想WPF,如果你的遗留应用程序太多。 – MickyD
这是我的第一个方法。不是我的决定,但需要有一种不同的风格来满足WPF的需求。 – DanielG