我有調用服務器來更新數據庫的功能,我等着它在返回結果之前完成:使用ProgressDialog與異步/等待,C#的Android
public async Task<int> CarryOutPreRegisterDevice(string emailAddress)
{
int intRet=-1;
Task<int> tski = PreRegisterDevice(emailAddress);
intRet = await tski;
return intRet;
}
我想怎麼辦顯示進度對話框,同時發生這種情況。但是,只要將進程對話框中的await行打包,它就允許原始線程運行並在等待完成的任務完成之前返回intRet。
public async Task<int> CarryOutPreRegisterDevice(string emailAddress)
{
int intRet = -1;
Task<int> tski = PreRegisterDevice(emailAddress);
ProgressDialog progressDialog;
progressDialog = ProgressDialog.Show(AppGlobals.CurrentActivity, "", "Sending....", true);
progressDialog.SetProgressStyle(ProgressDialogStyle.Spinner);
new Thread(new ThreadStart(async delegate
{
intRet = await tski;
progressDialog.Dismiss();
})).Start();
return intRet;
}
有沒有更好的方法來構造這個,以便在任務完成之前不會執行返回行。
謝謝。
爲什麼要創建一個新線程?這打破了任務的目的。顯示進度對話框後,只需等待任務,這就是你需要做的... – Gusman