【问题标题】:Background work that perform UI change and modal dialog执行 UI 更改和模式对话框的后台工作
【发布时间】:2011-03-14 13:42:19
【问题描述】:

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

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

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

那么我该怎么做呢?

【问题讨论】:

    标签: c# wpf modal-dialog backgroundworker dispatch


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多