Ausführen einer Methode in BackGroundWorker und Anzeigen von ProgressBar

Was ich möchte, ist, wenn eine Methode eine Aufgabe ausführt. Die Benutzeroberfläche bleibt aktiv und ich möchte den Fortschritt der Arbeit in einer Fortschrittsleiste anzeigen.

Ich habe eine Methode, aBackGroundWorker und einProgressbar. Ich möchte die Methode wann aufrufenBackGroundWorker startet und zeigt den Fortschritt. Die Methode enthält eine Schleife. So kann es den Fortschritt melden.

Was kann also getan werden?

private void Form1_Load(object sender, EventArgs e)
{
    // TODO: This line of code loads data into the 'dataSet1.TBLMARKET' table. You can move, or remove it, as needed.
    myBGWorker.WorkerReportsProgress = true;
}

private void myBGWorker_DoWork(object sender, DoWorkEventArgs e)
{
    parseFiles();
}

private void myBGWorker_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
    myProgressBar.Value = e.ProgressPercentage;
}

private void myBGWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
    MessageBox.Show("Done");
}

private void parseButton_Click(object sender, EventArgs e)
{
    myBGWorker.RunWorkerAsync();
}

public void parseFiles()
{
  for()
  {
     //parsing
     myBGWorker.ReportProgress(...);
  }
}

Aber es funktioniert nicht. DasProgressbar wird nicht aktualisiert. Nur ein kleiner Fortschritt zeigt sich nach demMessageBox "Erledigt".

Antworten auf die Frage(3)

Ihre Antwort auf die Frage