2014-03-05 88 views
0

我在WPF中創建了一個窗口來顯示當前正在運行的操作的狀態。多個窗口,多個線程。設置窗口所有者

窗口在單獨的線程上運行,從此派生:Multiple Windows, Multiple Threads example

我做的第一件事是設置我的狀態窗口的所有者,因爲我希望它顯示在父所有者。它應該一起被最小化,而不是隱藏在所有者之後。我用WindowInteropHelper來設置所有者。

這裏是問題:當主線程忙,而不報告任何進展一段時間,狀態顯示窗口也停止響應。在擁有者忙碌時,如何保持子窗口響應?

+0

你的意思是UI線程忙? –

+0

@mckeown是的,主窗口線程正忙。 – user3383864

+0

它是否忙於做UI的東西或可以(應該)由工人/任務處理的東西? –

回答

0

這聽起來像是你在UI線程上做的繁重工作。你需要將這個加載到一個新的線程,然後回調到你的狀態窗口更新的UI線程。這將確保您的狀態欄在工作在後臺完成時保持響應。

在您提供的鏈接的窗口示例上方的部分中有一個示例。

處理阻塞操作

如果你想要的東西就像一個進度條,你將需要決定在哪一個階段推進杆,而不是隻知道當一切都完成了。