您可以編寫一個WebClient類,您可以在具有不同異步請求的循環中調用它。至於,
WebClient client = new WebClient();
try
{
client.DownloadStringCompleted += (object newSender, DownloadStringCompletedEventArgs e) =>
{
Dispatcher.BeginInvoke(() =>
{
try
{
var response = e.Result;
// your response logic.
}
catch (Exception)
{
MessageBox.Show("Problem occured");
}
});
};
}
catch
{
MessageBox.Show("Problem occured");
}
finally
{
if (userHasCanceled)
client.DownloadStringAsync(new Uri("xyz"));
}
client.DownloadStringAsync(new Uri("abc"));
所以,當你調用client.CancelAsyn()
它可能拋出exception
,這是在的try-catch塊處理,最後,你可以調用終於塊新的異步請求。你也可以把您在終於塊,以確認用戶是否有canceled
操作,如果yes
然後調用新的異步請求else
什麼也不做。
我希望這是你正在尋找的。