2014-07-03 39 views
0

我正在使用後臺工作程序並向進度條報告進度。 在BackgroundWorker DoWork事件我打電話幾個方法完成每個方法。我從字面上更新工作正常的進度值。BackgroundWorker_DoWork:調用Async方法時已完成操作

但是,當我打電話,我的DoWork異步方法,通話結束後,我更新我的期望值進度值 - 但它拋出,我認爲說一個例外:

「操作早已已完成「這隻會發生在我打電話給 」異步方法「時。

這是我的代碼:

LoginBackgroundThreadReport(20, "Requesting Token"); 

long _StatusCode = await RequestNewToken(); 

LoginBackgroundThreadReport(30, "Configuring Device"); 


//LoginBackgroundThreadReport method  
private void LoginBackgroundThreadReport(int pValue, string pMessage, long pStatusCode = 0) 
{ 
    object[] _arr = new object[2]; 
    _arr[0] = pMessage; 
    _arr[1] = pStatusCode; 
    LoginBackgroundWorker.ReportProgress(pValue, _arr); 
} 

這裏的「請求令牌」被顯示,但在「配置設備」失敗,因爲我更新值30後,我打電話異步方法正在更新我的進度值自動爲100.

+1

爲什麼你需要調用'RequestNewToken'異步?您已經處於與GUI不同的線程中,並且您只需在步驟完成時報告進度。 –

+0

哪種方法拋出異常? –

+0

RequestNewToken是一種在我的公共類中使用的方法,它在多個地方使用,所以我沒有必要修改它,因此只是以相同的方式使用它。 – user3721395

回答

相關問題