0

我有一个 C#/WPF 应用程序,它将执行很多操作,包括 UI 修改(它正在加载宏),但我希望有一个模态窗口,其中有一些移动的东西告诉等待。

加载宏工作必须在主应用程序线程中执行,但是如何打印模态窗口,因为它必须不被宏加载阻塞,而是在应用程序线程中,因为它是 UI 的东西。

目前,我在显示等待对话框时将 LoadMacro 放在 Application.Current.Dispatcher.Invoke 中的 BackgroundWorker 中。但这并不令人满意,因为两者为了更新UI而互相争斗。

那么我该怎么做呢?

4

1 回答 1

4

您不需要从任何调度程序运行后台工作程序。

加载您的模态窗口,然后启动已订阅其 ProgressChanged 事件的后台工作人员。然后,您可以在后台工作人员上报告进度,将您喜欢的任何内容传回以更新 UserState 属性中的模型窗口。

http://msdn.microsoft.com/en-us/library/system.componentmodel.backgroundworker.progresschanged.aspx

于 2011-03-14T13:50:29.230 回答