如何使用parallel.foreach进度条?

时间:2013-03-22 07:14:06

标签: c# progress-bar parallel.foreach

我有多个要下载的文件,我在C#中使用了Parallel.foreach。它工作正常。现在我想使用进度条检查下载进度。这怎么可能?

我使用过这段代码:

Parallel.For(0, numofitems, options, j =>
{
   using (WebClient client = new WebClient())
   {
       client.DownloadProgressChanged += new DownloadProgressChangedEventHandler(client_DownloadProgressChanged);

       client.DownloadFile(list[j], @"F:\Test\Test2\a" + j + ".png"); 
   }
}

1 个答案:

答案 0 :(得分:1)

试试这个。

1.在表单中删除进度条。在我的示例中,我将名称保留为“progressBar1”

2.将您的DownloadProgressChanged事件更改为以下

 client.DownloadProgressChanged += (s, e) =>
       {
        progressBar1.Value = e.ProgressPercentage;
       };