使用webclient异步下载文件时,DownloadFileCompleted事件无法正常工作

时间:2015-02-12 06:41:55

标签: c# webclient

我正在使用Webclient异步下载4个文件。问题是,在这个场景中,当任何文件完成时,它不会触发FileCompletedEvent。

不要担心代码,我删除了很多额外的代码。一次只能处理单个文件

 Dictionary<int, WebClient> wd = new Dictionary<int, WebClient>();


 public void DownloadPDF(string url,string path)
    {
        index=1;
        if (wd.ContainsKey(1) == false)
        {
            wd.Add(1, null);
        }
                for (int i = 1; i <=5; i++)
                {
                    if (wd[i] == null)
                    {
                        wd[i] = new WebClient();
                        index = i;
                        break;
                    }
                }
             wd[index].DownloadFileCompleted += (sender, e) =>    w_DownloadFileCompleted(sender, e, path,index);


             wd[index].DownloadFileAsync(new Uri(url), path);
     }

private void w_DownloadFileCompleted(object sender, System.ComponentModel.AsyncCompletedEventArgs e, string path,int index)
    {
        wd[index] = null;
    }

在下载并发文件的情况下,此问题与其他问题不同。谢谢

1 个答案:

答案 0 :(得分:0)

你是否给了AsyncCompletedEventHandler一个镜头?