title: How to update progressbars individually (simultaneous downloads)
body: <p>I´m currently trying to add parallel downloads to my application but I don´t know how to handle the DownloadProgressChangedEvent to display the progress in multiple progressbars.</p>
  
  <p>I´m using a datagridview with predefined rows for each file the user is able to download and each row has a cell with a progressbar in it.</p>
  
  <p>The problem now is, that I don´t know how to update each progressbar individually, because right now, all selected progressbars are showing the same percentage and they´re just jumping between the progress of download1 &amp; download2.</p>
  
  <p>Here´s the code im using:</p>
  
  <p><strong>To start the downloads:</strong></p>
  
  <pre><code>private void download_button_Click(object sender, EventArgs e)
      {
          start = DateTime.Now;
          download_button.Enabled = false;
  
          Rows = dataGridView1.Rows.Count;
          Checked = 0;
  
          CheckedCount = 0;
  
              //count the selected rows
              for (i = 0; i &lt; Rows; i++)
              {
                  Checked = Convert.ToInt32(dataGridView1.Rows[i].Cells["checkboxcol"].FormattedValue);
  
                  CheckedCount += Checked;
  
                  richTextBox3.Text = CheckedCount.ToString();
              }
  
  
          for (int z = 1; z &lt; CheckedCount; z++)
          {             
              _MultipleWebClients = new WebClient();
  
              _MultipleWebClients.DownloadFileCompleted += new AsyncCompletedEventHandler(_DownloadFileCompleted);
              _MultipleWebClients.DownloadProgressChanged += new System.Net.DownloadProgressChangedEventHandler(_DownloadProgressChanged);
              _MultipleWebClients.DownloadFileAsync(new Uri(_downloadUrlList[z].ToString()), @"F:\test" + z + ".mp4");     
          }
  
      }
  </code></pre>
  
  <p>(I´m also unable to download more than two files simultaneously - the third download won´t start until the first two are finished)</p>
  
  <hr>
  
  <p><strong>DownloadProgressChangedEvent:</strong></p>
  
  <pre><code>    private void _DownloadProgressChanged(object sender, DownloadProgressChangedEventArgs e)
      {
          progressBar1.Value = e.ProgressPercentage;
          for (int c = 0; c &lt; CheckedCount; c++)
          {
              dataGridView1.Rows[_downloadRowNrList[c]].Cells[3].Value = e.ProgressPercentage;
          }
  
          float size = ((e.TotalBytesToReceive / 1024) / 1024);
          label1.Text = size.ToString();
  
          double dn = (double)e.BytesReceived / 1024.0 / (DateTime.Now - start).TotalSeconds;
          label2.Text = (dn.ToString("n") + " KB/s) " + e.ProgressPercentage);        
      }
  </code></pre>
  
  <p>The problem probably is, that all progressbars are using the same DownloadProgressChangedEvent, but I´m not sure how to create multiple of these events without knowing the needed number...</p>
  
  <p>So i hope that someone is able to help me with this,</p>
  
  <p>thanks in advance!</p>