从URL并行下载更多文件
本文关键字:文件 下载 URL 并行 | 更新日期: 2023-09-27 18:28:57
在datagrindview行中,我有很多URL。
我想从这个网址下载这些文件
现在我使用这个代码。:
int rowcount = dataGridView1.Rows.Count;
for (int i = 0; i < rowcount; i++)
{
string filename = patch;
WebClient webc = new WebClient();
webc.DownloadFile(dataGridView1.Rows[i].Cells[0].Value.ToString(), patch + "''" + "alap" + (i+1).ToString() + ".mp4");
}
这对我来说是有效的,它一个接一个地下载文件。
我想下载并行文件(多线程),例如在同一时间下载5个文件。
尝试:
int rowcount = dataGridView1.Rows.Count;
List<Task> tasks = new List<Task>()
for (int i = 0; i < rowcount; i++)
{
string filename = patch;
var tsk = Task.Factory.StartNew(() =>
{
try
{
var integerString = (i+1).ToString();
WebClient webc = new WebClient();
webc.DownloadFile(dataGridView1.Rows[i].Cells[0].Value.ToString(), patch + "''" + "alap" + integeString + ".mp4");
}
catch
{
//log
}
});
tasks.add(tsk);
}
Task.WaitAll(tasks.ToArray());