Індикатор виконання

private void Calculate(int i){     double pow = Math.Pow(i, i);}private void button1_Click(object sender, EventArgs e){     progressBar1.Maximum = 100;     progressBar1.Step = 1;     progressBar1.Value = 0;     backgroundWorker.RunWorkerAsync();}private void backgroundWorker_DoWork(object sender, DoWorkEventArgs e){     var backgroundWorker = sender as BackgroundWorker;     for (int j = 0; j < 100000; j++)     {         Calculate(j);         backgroundWorker.ReportProgress((j * 100) / 100000);     }}private void backgroundWorker_ProgressChanged(object sender, ProgressChangedEventArgs e){     progressBar1.Value = e.ProgressPercentage;}private void backgroundWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e){     // TODO: do something with final calculation.}