【问题标题】:WPF Window does not finish rendering when download starts下载开始时 WPF 窗口未完成渲染
【发布时间】:2011-07-27 16:37:26
【问题描述】:

我正在编写一个小文件下载实用程序。在我的 MainWindowWindow_Loaded() 事件上调用 DownloadFile() 方法。由于 DownloadFile 方法是资源密集型的,当下载开始时,MainWindow 不会在屏幕上完成渲染。下载完成后,我才来查看我的 WPF 表单上的实际控件。

为了控制这一点,我正在使用以下 DoEvents() 代码,但它仍然无法正常工作。我在 Form 构造函数中的 InitializeComponent() 之后以及在 Window_Loaded 事件中调用 DownloadFile() 之前调用此函数。

private void DoEvents()
        {
            Application.Current.Dispatcher.Invoke(DispatcherPriority.Background,
                                                  new Action(delegate { }));
        }

【问题讨论】:

    标签: wpf doevents


    【解决方案1】:

    【讨论】:

      【解决方案2】:

      始终建议在单独的线程中完成所有服务器点击并下载相关内容。您可以在以下链接中查看如何操作。

      http://bathinenivenkatesh.blogspot.com/2011/07/wpf-build-more-responsive-ui.html

      【讨论】:

        【解决方案3】:

        您应该改用 BeginInvoke(使用 Background 选项)并将 DownloadFile 放在那里。

        【讨论】:

        • 我正在使用第三方工具。它确实有 FileAsync 方法,但仍然是同样的问题。
        猜你喜欢
        • 2011-06-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多