我正在使用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;
}
在下载并发文件的情况下,此问题与其他问题不同。谢谢
答案 0 :(得分:0)
你是否给了AsyncCompletedEventHandler一个镜头?