2010-11-27 30 views
1

我有一個WPF應用程序,它具有運行存儲在嵌入資源中的腳本的powershell自定義主機。加載後,用戶點擊按鈕,該腳本調用執行,但我看到了以下錯誤:WPF線程和自定義Powershell主機 - 命令執行因用戶中斷命令而停止

命令執行停止,因爲用戶中斷命令

用戶(即我)沒有做任何插入腳本,所以我猜測這是一些線程問題。

該應用程序還接受命令行參數,通知腳本立即執行。當我第一次加入這個功能,腳本運行完美,但我沒有看到WPF UI直到完成,所以我增加了以下主窗口視圖模型的啓動:

 var bgWork = new BackgroundWorker(); 
     bgWork.DoWork += (s,e) => { }; 
     bgWork.RunWorkerCompleted += (s,a) => 
     { 
      var app = (Application.Current as App); 

      if (app.ExecuteImmediate && StartCommand.CanExecute(null)) 
       StartCommand.Execute(null); 

     }; 
     bgWork.RunWorkerAsync(); 

BackgroundWorker的運行已完成UI線程上的代碼。這只是我經常使用的一個小訣竅,大多數情況下它工作正常。

所以,我知道一個很長的問題,但有誰有任何想法我做錯了什麼?

作爲一個方面或相關的問題,我也有問題通過數據綁定在進程運行時更新ui。例如,狀態欄中有一個狀態指示器,它可以在IDLE和BUSY之間切換,但是這似乎永遠不會改變,直到爲時已晚。綁定工作正常,但它就像我需要調用舊的VB DoEvents()。

乾杯

回答

0

已經解決了這個咖啡和幾分鐘後的調試。

有erorr是因爲我沒有完全實施PromptForChoice方法。

但是,我仍然有更新綁定的問題。