gpt4 book ai didi

asp.net-web-api - 网络 API : DelegatingHandler using CancellationToken

转载 作者:行者123 更新时间:2023-12-02 01:11:36 25 4
gpt4 key购买 nike

典型的 Web API DelegatingHandler 实现如下所示...

protected async override Task<HttpResponseMessage> SendAsync(
HttpRequestMessage request, CancellationToken cancellationToken)
{
// TODO: Do work before inner handler here

// Call the inner handler.
var response = await base.SendAsync(request, cancellationToken);

// TODO: Do work _after_ inner handler here

return response;
}

处理 CancellationToken.IsCancellationRequested == true 的首选方法是什么?

我应该:

  • 生成错误响应并中断委托(delegate)链?
  • 什么都不做(如上所述)?
  • 选项“C”?

最佳答案

Cancellation semantics将在 token 被取消时抛出异常(例如,CancellationToken.ThrowIfCancellationRequested)。

如果您没有任何异步工作要做(base.SendAsync 除外),那么您可以忽略该 token 。

请注意,如果 token 被取消,await base.SendAsync 可能会引发异常。异常会自然传播,但如果您有任何必须进行的清理,无论取消如何,请使用 usingfinally block 。

关于asp.net-web-api - 网络 API : DelegatingHandler using CancellationToken,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16801078/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com