title: How to send more arguments in C# backgroundworker progressed changed event
body: <p>I understand how we can pass one variable(progresspercentage) to "progresschanged" function , like so.</p>
  
  <pre><code>backgroundWorker1.ProgressChanged += new ProgressChangedEventHandler(backgroundWorker1_ProgressChanged);
  </code></pre>
  
  <p>...</p>
  
  <pre><code>worker.ReportProgress(pc);
  </code></pre>
  
  <p>...</p>
  
  <pre><code>private void backgroundWorker1_ProgressChanged(object sender,
  ProgressChangedEventArgs e)
  {
     this.progressBar1.Value = e.ProgressPercentage;
  }
  </code></pre>
  
  <p>But I want to pass more variables to this function, some thing like:</p>
  
  <pre><code>worker.ReportProgress(pc,username,score);
  </code></pre>
  
  <p>...</p>
  
  <pre><code>private void backgroundWorker1_ProgressChanged(object sender,
  ProgressChangedEventArgs e)
  {
     this.progressBar1.Value = e.ProgressPercentage;
     this.currentUser.Value = e.UserName;  //as string
     this.score.Value = e.UserScore;  //as int
  }
  </code></pre>
  
  <p>sorry I'm new to c#, could someone give me an example.</p>