多个窗口,多个线程.设置窗口所有者



我在 WPF 中创建了一个窗口来显示当前正在运行的操作的状态。

该窗口在单独的线程上运行,派生自:多个窗口,多个线程示例。

我做的第一件事是设置状态窗口的所有者,因为我希望它显示在父所有者处。它应该一起最小化,而不是隐藏在所有者后面。我已经使用WindowInteropHelper来设置所有者。

问题是:当主线程繁忙并且有一段时间没有报告任何进度时,状态显示窗口也会停止响应。如何在子窗口的所有者繁忙时保持其响应?

这听起来像是你在 UI 线程上做了所有繁重的工作。您需要将其卸载到新线程,然后回调 UI 线程并更新状态窗口。这将确保您的状态栏在后台完成工作时保持响应。

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

请参阅处理阻塞操作

如果你想要一个进度条之类的东西,你需要决定在哪个阶段推进进度条,而不仅仅是知道什么时候一切都完成了。

最新更新