0

我正在编写一个小文件下载实用程序。在我的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 { }));
        }
4

3 回答 3

1

看看DownloadFileAsync 方法

于 2011-07-27T06:35:23.420 回答
0

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

于 2011-07-27T06:37:43.937 回答
0

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

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

于 2011-07-27T08:37:26.623 回答