Wer programmiert wird das kennen: Einfache aber prägnante Beispiele sind oft viel hilfreicher als elend lange Dokumentationen. Mein Problem war letztens: Wie erstelle ich mal schnell einen Backgroundworker, der sich mit meiner Progressbar synchronisiert. Ich wollte dafür einfach ein Codeschnipsel, aus dem ich mir die Funktionsweise entnehmen kann, und wenn ich etwas nicht verstanden hätte, dann hätte ich eben im MSDN gucken müssen.
Für Leute, denen es ebenso geht, hier ein einfacher, unvollständiger Code für einen Background-Worker.


    public void StartBackgroundWorker() {
      BackgroundWorker bw = new BackgroundWorker();
      bw.WorkerReportsProgress = true;
      bw.DoWork += Work;
      bw.ProgressChanged += UpdateProgressBarOrSomething;
      bw.RunWorkerCompleted += HappyLittleInfoBox;
      bw.RunWorkerAsync();
    }

    private void Work(object sender, EventArgs e) {
      BackgroundWorker worker = sender as BackgroundWorker;
      // do some work
      worker.ReportProgress(24);
      // do more work
      // ...
      // end work
      worker.ReportProgress(100);
      return;
    }

    private void UpdateProgressBarOrSomething(object sender, ProgressChangedEventArgs e) {
      // do something
      // it makes sense to use this property:
      // e.ProgressPercentage;
    }

    private void HappyLittleInfoBox(object sender, EventArgs e) {
      MessageBox.Show("OMFG, the work is done. Amazing!");
    }
´´´

Nächster Beitrag Vorheriger Beitrag