您可以编写一个 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块中处理,最后你可以在finally块中调用一个新的异步请求。你也可以把 check in finally块来确认用户是否有canceled
操作,如果yes
然后调用新的异步请求else
什么也不做。
我希望这就是你要找的。