我正在编写一个小文件下载实用程序。在 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 { }));
}
答案 0 :(得分:1)
答案 1 :(得分:0)
您应该使用BeginInvoke(使用Background选项)并将DownloadFile放在那里。
答案 2 :(得分:0)
始终建议执行所有服务器命中并在单独的线程中下载相关内容。你可以在以下链接中看到如何做到这一点。
http://bathinenivenkatesh.blogspot.com/2011/07/wpf-build-more-responsive-ui.html