下载开始时,WPF窗口无法完成渲染

时间:2011-07-27 06:31:42

标签: wpf doevents

我正在编写一个小文件下载实用程序。在 MainWindow Window_Loaded()事件中调用 DownloadFile()方法。由于 DownloadFile 方法是资源密集型的,因此 MainWindow 在下载开始时无法在屏幕上完成呈现。在下载完成后,我会看到WPF表单上的实际控件。

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

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

3 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

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

答案 2 :(得分:0)

始终建议执行所有服务器命中并在单独的线程中下载相关内容。你可以在以下链接中看到如何做到这一点。

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