Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
下载开始时,WPF窗口未完成渲染_Wpf_Doevents - Fatal编程技术网

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

下载开始时,WPF窗口未完成渲染,wpf,doevents,Wpf,Doevents,我正在写一个小文件下载实用程序。在my Main Window的Window\u Loaded()事件中调用DownloadFile()方法。由于DownloadFile方法是资源密集型的,因此下载开始时主窗口不会在屏幕上完成渲染。下载完成后,我才看到WPF表单上的实际控件 为了控制这一点,我使用了以下DoEvents()代码,但它仍然不起作用。我在表单构造函数中的初始化组件()之后调用此函数,在窗口加载的事件中调用下载文件()之前调用此函数 private void DoEvents()

我正在写一个小文件下载实用程序。在my Main Window的Window\u Loaded()事件中调用DownloadFile()方法。由于DownloadFile方法是资源密集型的,因此下载开始时主窗口不会在屏幕上完成渲染。下载完成后,我才看到WPF表单上的实际控件

为了控制这一点,我使用了以下DoEvents()代码,但它仍然不起作用。我在表单构造函数中的初始化组件()之后调用此函数,在窗口加载的事件中调用下载文件()之前调用此函数

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

查看。

您应该改用BeginInvoke(带有后台选项),并将下载文件放在那里。

通常建议在单独的线程中执行所有服务器点击并下载相关内容。您可以在下面的链接中看到如何实现这一点


我正在使用第三方工具。它确实有FileAsync方法,但仍然存在相同的问题。