Uruchamianie metody w BackGroundWorker i Pokazywanie ProgressBar

Chcę, aby jakaś metoda wykonała jakieś zadanie. Interfejs użytkownika zachowuje swoją aktywność i chcę pokazać postęp pracy w pasku postępu.

Mam metodę, aBackGroundWorker i aProgressbar. Chcę wywołać metodę kiedyBackGroundWorker zaczyna biec i pokazuje postęp. Metoda zawiera pętlę. Może więc zgłosić postęp.

Więc co można zrobić?

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(...);
  }
}

Ale to nie działa. TheProgressbar nie aktualizuje się. Tylko niewielki postęp jest widoczny poMessageBox "Gotowe".

questionAnswers(3)

yourAnswerToTheQuestion