如何检测 HttpClient.CancelPendingRequests 是否用于取消挂起的请求



应用程序设置


  1. 我正在使用HttpClient从Windows窗体应用程序向REST服务发出多个异步POST请求。
  2. 同时,从 REST 服务获取响应时,应用程序会显示一个带有"取消"按钮的"正在处理..."窗口。
  3. 现在,当用户按下"取消"按钮时,我正在使用 HttpClient.CancelPendingRequests 来取消正在进行的请求。
  4. 使用 HttpClient.CancelPendingRequests 会在 PostAsync mthod 调用上抛出 TaskCanceledException。

查询

  1. 有什么方法可以检测到由于调用HttpClient.CancelPendingRequests而不是由于任何其他原因(如超时)而抛出TaskCanceledException?
  2. 有没有其他方法可以实现类似的取消功能?

谢谢


捕获异常并检查 TaskCanceledException.CancellationToken.IsCancellationRequested 属性。如果为 true,则可以相当确定这是显式请求的取消与超时。

话虽如此,请谨慎使用此解决方案并进行一些测试。正如我不久前发现的那样,在某些情况下,您会认为应该设置该位,而事实并非如此。

相关内容

  • 没有找到相关文章

最新更新