异步等待 - 调用 SQL 服务器时的 CancellationTokens。 ASP.NET

Async Await - CancellationTokens when calling a SQL Server. ASP.NET

向 SQL 服务器发出异步请求时使用取消令牌是一种好习惯吗?

假设我们遇到的情况是 SQL 服务器报告 'Operation Time out' 失败。

最终 SQL 服务器将 return 异常给我们.. 并且线程池中的任务接收到包含异常的结果。

但是,如果我们通过引入具有更短超时限制的取消令牌来抵御这种情况,会更好吗?

我的直觉告诉我,我应该让 SQL 服务器来报告任何异常,但这可能意味着让请求挂起几分钟。

希望这是有道理的。

SQL 服务器端没有超时。 ADO.NET 已经设置了一个计时器,该计时器在触发时将中止查询。

让我重新表述一下:客户端 将要求服务器 中止查询。

this MSDN blog中有更详细的解释。