我正在使用任務來執行多個Web服務調用,並且如果在任何時候失敗都想退出。這裏是我的代碼的時刻:帶有故障檢查的鏈接任務
service.Login(usernameTextField.Text, passwordTextField.Text).ContinueWith(t => {
if (t.IsFaulted){
new UIAlertView("Login Failed", "Unable to contact server at this time", null, "OK").Show();
} else {
if (t.Result)
{
service.GetImportantData().ContinueWith (genericTask => {
if (genericTask.IsFaulted){
new UIAlertView("Login Failed", "Unable to contact server at this time", null, "OK").Show();
}
else {
service.SyncUserSpecificData().ContinueWith(projectTask => {
NavigationController.PopToRootViewController(true);
});
}
}, TaskScheduler.FromCurrentSynchronizationContext());
} else {
new UIAlertView("Login Failed", "Please check your login and try again", null, "OK").Show();
}
}
loadingOverlay.Hide();
});
這是一個Xamarin應用程序,但認爲不應該的問題,因爲我只是想知道有沒有更好的方式來撰寫他們包括錯誤檢查,因爲它的回調湯的時刻。
我想你不能使用C#5? –
您究竟希望TPL知道什麼是「撤消」由成功執行的任務所做的更改所必需的? –
@CoryNelson我認爲Xamarin有異步/等待,如果這就是你所追求的,你有什麼機會向我展示這將如何改善? – RodH257