我正在查看旧项目的代码,我发现了这个:
private async void send(HttpRequestMessage request, CancellationToken cancellationToken)
{
HttpResponseMessage response = await _client.SendAsync(request, cancellationToken);
//...
}
我想知道它被取消后会发生什么?
回复中会有什么?
之后我是否需要致电ThrowIfCancellationRequested
,否则会引发异常?
答案 0 :(得分:3)
我想知道它被取消后会发生什么?
standard pattern将取消返回的任务。这会导致await
提出OperationCanceledException
。
回复中会有什么?
没有响应对象,因为在该点之前抛出了异常。
答案 1 :(得分:2)
您需要像这样调用它
...
cancelToken.ThrowIfCancellationRequested();
HttpResponseMessage response = await _client.SendAsync(request, cancellationToken);
...
然后,当您请求取消时,它将抛出OperationCanceledException类型的异常。