Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/319.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
C# 用C语言下载文件#_C#_.net_Windows - Fatal编程技术网

C# 用C语言下载文件#

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

当我运行下载文件的方法时,它并不是在调用下一个方法“unzipfiles”之前等待下载完成,我如何让它等待文件下载完成

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方法,您可以在该方法中进行解压缩