标签: asp.net sql-server asynchronous async-await cancellation-token
在向SQL Server发出异步请求时使用取消令牌是一种好习惯吗?
让我们说我们的情况可能会导致SQL Server报告“操作超时”失败。
最终,SQL Server会将异常返回给我们..以及来自线程池的一个Task,它接收包含异常的结果。
但是如果我们通过引入具有缩短的超时限制的取消令牌来防御这种情况会更好。
我的直觉告诉我,我应该把它留给SQL Server报告任何异常,但这可能意味着让请求暂停几分钟..
希望这是有道理的。
答案 0 :(得分:2)
SQL Server在服务器端没有超时。 ADO.NET已经设置了一个计时器,当被触发时,将中止查询。
让我再说一遍:客户端会要求服务器中止查询。
this MSDN blog中有更详细的解释。