WebClient.DownloadFileAsync()无法在慢速网络上正确下载文件

时间:2013-03-19 20:43:47

标签: c# download webclient downloadfileasync

我的应用程序用于下载文件。下载文件后,将这些文件的大小与XML文件中的元素进行比较以进行验证。 XML文件具有每个具有“size”属性的文件的元素。这是下载文件应该是的大小。这些文件在普通以太网连接上验证正常。当使用慢速无线连接时,文件始终无法通过验证,意味着下载的文件不是它们应该的大小。为什么WebClient DownloadFileAsync()方法无法在缓慢或不稳定的网络上成功下载文件?除了一遍又一遍地重试之外,有什么方法吗?

foreach (var file in fileList.OrderBy(x => x.Name))
{
    var client = new WebClient();
    client.DownloadFileCompleted += (o, a) => Task.Factory.StartNew(() => OnDownloadFileCompleted());
    client.DownloadFileAsync(new Uri(AppStrings.FileServer + file.Name), AppStrings.FilePath + file.Name);
    webClientList.Add(client); //used to dispose later, after all files complete.
}

1 个答案:

答案 0 :(得分:0)

您尝试一次下载太多文件。尝试分批下载。 AsyncDownloadCompleted Event对象上还有一个error属性,它将告诉您异常是什么。