C# 用C语言下载文件#
当我运行下载文件的方法时,它并不是在调用下一个方法“unzipfiles”之前等待下载完成,我如何让它等待文件下载完成C# 用C语言下载文件#,c#,.net,windows,C#,.net,Windows,当我运行下载文件的方法时,它并不是在调用下一个方法“unzipfiles”之前等待下载完成,我如何让它等待文件下载完成 private void Download_Click(object sender, EventArgs e) { WebClient webClient = new WebClient(); webClient.DownloadFileCompleted += new AsyncCompletedEventHandler(Completed); web
private void Download_Click(object sender, EventArgs e)
{
WebClient webClient = new WebClient();
webClient.DownloadFileCompleted += new AsyncCompletedEventHandler(Completed);
webClient.DownloadProgressChanged += new DownloadProgressChangedEventHandler(ProgressChanged);
webClient.DownloadFileAsync(new Uri("http://download1us.softpedia.com/dl/f4932a906a7dd98c7ff002b07e9bd94b/4e065004/100079174/software/portable/security/ccsetup307.zip"), @"ccsetup307.zip");
// Call unzip method
unzipfiles();
}
在DownloadFileCompleted事件中调用您的
unzipfiles()
方法在DownloadFileCompleted事件中调用您的unzipfiles()
方法异步下载,这意味着代码只是开始下载,然后在后台完成。下载完成后,将触发DownloadFileCompleted
事件,并调用completed
方法
您应该将对
unzipfiles
的调用移动到Completed
方法。您正在异步下载,这意味着代码只是开始下载,然后在后台完成。下载完成后,将触发DownloadFileCompleted
事件,并调用completed
方法
您应该将对
unzipfiles
的调用移动到Completed
方法。您可以使用DownloadFile()
而不是DownloadFileAsync()
。然而,这意味着在下载文件的过程中UI会被锁定,您应该尽量避免这种情况
更好的解决方案是从
Completed()
方法调用unzipfiles()
。您可以使用DownloadFile()
而不是DownloadFileAsync()
。然而,这意味着在下载文件的过程中UI会被锁定,您应该尽量避免这种情况
更好的解决方案是从
Completed()
方法调用unzipfiles()
。您应该在Completed
方法中解压缩:
void Completed(object sender, AsyncCompletedEventArgs e)
{
unzipfiles();
}
或同步运行下载:
WebClient webClient = new WebClient();
webClient.DownloadFile(new Uri("http://download1us.softpedia.com/dl/f4932a906a7dd98c7ff002b07e9bd94b/4e065004/100079174/software/portable/security/ccsetup307.zip"), @"ccsetup307.zip");
unzipfiles();
您应该使用
已完成的方法解压缩:
void Completed(object sender, AsyncCompletedEventArgs e)
{
unzipfiles();
}
或同步运行下载:
WebClient webClient = new WebClient();
webClient.DownloadFile(new Uri("http://download1us.softpedia.com/dl/f4932a906a7dd98c7ff002b07e9bd94b/4e065004/100079174/software/portable/security/ccsetup307.zip"), @"ccsetup307.zip");
unzipfiles();
您所做的是调用下载文件的异步实现
为了简单起见,您可以使用-
webClient.DownloadFile(new Uri("http://download1us.softpedia.com/dl/f4932a906a7dd98c7ff002b07e9bd94b/4e065004/100079174/software/portable/security/ccsetup307.zip"), @"ccsetup307.zip");
没有事件注册
如果您想使用异步实现,这意味着当下载文件时,WebClient对象将调用-Completed方法,您可以在其中执行解压缩…您正在做的是调用下载文件的异步实现
为了简单起见,您可以使用-
webClient.DownloadFile(new Uri("http://download1us.softpedia.com/dl/f4932a906a7dd98c7ff002b07e9bd94b/4e065004/100079174/software/portable/security/ccsetup307.zip"), @"ccsetup307.zip");
没有事件注册
如果您想使用异步实现,这意味着当下载文件时,WebClient对象将调用-Completed方法,您可以在该方法中进行解压缩