2013-10-04 31 views
0

我正在嘗試爲最近編寫的WPF/C#應用程序設置測試套件。我沒有使用任何類型的MVVM模式,我意識到使自動化測試變得更加困難,但這是事情的當前狀態,我的老闆不會給我額外的重寫時間。所以我正在努力使情況最好。測試項目調用實例化使用BackgroundWorker時Window掛起

在我的測試項目中,我打電話給MainWindow() ctor。在創建之前,我啓動了DoWork方法BackgroundWorker,以便能夠通過(Action)delegate通過窗口的Dispatcher發送按鍵。然而,當我在致電MainWindow ctor之前調用bgWorker.RunWorkerAsync()時,ctor沒有得到執行(我在它和nada中放置了斷點)。如果我刪除了對RunWorkerAsync的呼叫,那麼ctor工作正常。我在這裏錯過了什麼?

回答

0

下面是BackgroundWorker的實現。

IsVMBusy = true;

var worker = new BackgroundWorker();

worker.DoWork + =(鄰,EA)=>

{ 

     //Do task here 

    }; 

worker.RunWorkerCompleted + =(鄰,EA)=>

 { 
      IsVMBusy = false; 
     }; 
     IsVMBusy = true; 
     worker.RunWorkerAsync(); 
+0

我明白如何BackgroundWorker''工作的。這裏有什麼問題是爲什麼在這種情況下調用DoWork方法會有所作爲。 – Conrad

相關問題