如题:我用WebClient可以同时下载多个文件。
现在我想要这种效果:每次最多只能下载两个文件,其他的文件要进行等待,如果有一个下载完成,等待中的其中一个文件则开始下载。
void DownLoadFile()
{
for (int i = 0; i < 8; i++)
{
WebClient webClient = new WebClient();
webClient.DownloadProgressChanged += WebClient_DownloadProgressChanged;
webClient.DownloadFileCompleted += WebClient_DownloadFileCompleted;
//从URI获取要下载的资源,下载的目录及文件名
webClient.DownloadFileAsync(new Uri("http://123.jpg"), "D:\\Images\\" + i + ".pdf");
}
}
Task.Run(()=>{
while(DownloadActionQueue>0)
{
Action downloadAction;
lock(){downloadAction = Dequue();}
downloadAction?.Invoke();
}
});
循环执行两次。