2016-06-29 7 views
0

Ich habe zwei Fenster. Mein Hauptfenster und das Fenster mit dem busyIndicator. Ich verwende BackgroundWorker und Dispatcher, um die Arbeit (Berechnung und ui) im Hauptfenster zu erledigen, während ich den busyIndicator zeigen möchte. Aber nur das Fenster zeigt ohne den busyIndicator.Kann BusyIndicator nicht mit BackgroundWorker in Wpf laufen

 BusyIndicator_Window busy = new BusyIndicator_Window(); 
     busy.Show(); 


     BackgroundWorker worker = new BackgroundWorker(); 

     worker.DoWork += (o, ea) => 
     { 

      Dispatcher.Invoke((Action)(() => 
       { 
        Plot.Plot_MV.startAnke(selectedFilePath, lw); 

       })); 
     }; 

     worker.RunWorkerCompleted += (o, ea) => 
     { 
      busy.busyIndicator.IsBusy = false; 
     }; 

     busy.busyIndicator.IsBusy = true; 
     worker.RunWorkerAsync(); 

Gibt es irgendwas, was ich falsch verstanden habe? Danke

Antwort

1

Ein Hintergrund-Worker, der sofort zurück in den UI-Thread delegiert, ist ziemlich nutzlos. Mach einfach die Arbeit, die du machen willst:

worker.DoWork += (o, ea) => 
{ 
    Plot.Plot_MV.startAnke(selectedFilePath, lw); 
};