我得到了一個類似於此示例中一個單獨的線程中打開一個模式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