Update der progressbar-von einem backgroundworker in WPF

Ich versuche, mich ein progressbar zuvor mit einem BackgroundWorker. Das Ziel ist, zu zeigen, in dem der Fortschritt der hintergrund zu suchen, aber ich will zuerst kennen zu lernen, den Fortschritt-bar, indem Sie eine einfache simulation. Dies ist der code:

    public MainWindow()
    {
        InitializeComponent();

        worker = new BackgroundWorker(); //variable declared in the class
        worker.WorkerReportsProgress = true;
        worker.DoWork += new DoWorkEventHandler(worker_DoWork);
        worker.ProgressChanged += new ProgressChangedEventHandler(backgroundWorker1_ProgressChanged);
        worker.RunWorkerCompleted += worker_RunWorkerCompleted;
    }

    private void worker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
    {
        this.Title += " DONE";
    }

    private void worker_DoWork(object sender, DoWorkEventArgs e)
    {
        for(int j = 0; j <= 100; j++)
        {
            worker.ReportProgress(j);
            Title += j.ToString();
            Thread.Sleep(50);
        }
    }

    void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e)
    {
        searchProgressBar.Value = e.ProgressPercentage;
    }

Aber wenn ich es starten, er springt dann rechts bis zum Ende, ohne dass die progressbar in keiner Weise. Wenn ich Debuggen Schritt-für-Schritt, der Letzte Schritt, den ich bekommen ist worker.ReportProgress(j);, dann wird die Kontrolle wieder an das Programm und die worker_RunWorkerCompleted genannt wird. Warum?

Schreibe einen Kommentar