2016-06-29 14 views
0

私は2つのウィンドウを持っています。私のmainWindowとbusyIndi​​catorのウィンドウ。 私はbusyIndi​​catorを表示したいのですが、BackgroundWorkerとDispatcherを使ってメインウィンドウで作業(計算とUI)を行っています。しかし、busyIndi​​catorがないと、ウィンドウだけが表示されます。WpfのBackgroundWorkerでBusyIndi​​catorを実行できません

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

何か問題がありますか? ありがとう

答えて

1

直ちにUIスレッドに委任するバックグラウンドワーカーはかなり役に立たない。あなたがやりたい仕事をしてください:

worker.DoWork += (o, ea) => 
{ 
    Plot.Plot_MV.startAnke(selectedFilePath, lw); 
}; 
関連する問題