从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个文件。

从URL并行下载更多文件

尝试:

        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());