我正在尝试从服务器下载带有webclient的文件。这非常好。但是当我尝试在进度条中显示下载进度时,它并没有给我任何进展。
我正在尝试使用 DownloadFileAsync -method下载该文件,以便为所有人创建一个自己的线程,以防止出现性能问题或冻结。
我在任何潜艇或事件之外宣布了WebClient:
private WebClient updateDownloader = new WebClient();
这与 Form.Shown -Event:
中的内容类似updateDownloader.DownloadFileAsync(new Uri(UriGoesHere), PathToSave);
它在Try-Block中。
我创建了一个像这样的子来显示进度条的进度:
private void ProgressChanged(object sender, DownloadProgressChangedEventArgs e)
{
progressBar1.Value = e.ProgressPercentage;
}
在表单加载 -Event中,我创建了eventhandler:
updateDownloader.DownloadProgressChanged += new DownloadProgressChangedEventHandler(ProgressChanged);
这应该在理论上有用,但事实并非如此,我已经访问过MSDN并看到了一些信息,只有一些方法正在运行,但实现这一点并没有帮助。
它永远不会到达这一个。我究竟做错了什么?如果您需要更多代码部分,请告诉我。
答案 0 :(得分:0)
您是否尝试修改所显示的表格'活动:
Application.DoEvents();
updateDownloader.DownloadFileAsync(new Uri(UriGoesHere), PathToSave);
答案 1 :(得分:-1)
您需要从主UI线程更新进度条。您无法直接从其他线程更新UI。