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.
爲什麼你需要調用'RequestNewToken'異步?您已經處於與GUI不同的線程中,並且您只需在步驟完成時報告進度。 –
哪種方法拋出異常? –
RequestNewToken是一種在我的公共類中使用的方法,它在多個地方使用,所以我沒有必要修改它,因此只是以相同的方式使用它。 – user3721395