Vic*_*riu 4 c# async-await asp.net-web-api2 sonarlint
SonarLint 是否应该在 ASP.NET Web API 控制器中触发S3216 ?看来这个规则是针对桌面应用程序的,在 ASP.NET 中上下文完全不同,不存在死锁的危险。或者我错过了什么?
ConfigureAwait(false)当您不需要捕获上下文时,您仍然应该在 WebAPI 中使用。
ConfigureAwait控制是否在捕获时恢复SynchronizationContext。确实,这在 UI 应用程序中是一个更痛苦的问题,但它在SynchronizationContext所有 UI 应用程序和所有 ASP.NET 应用程序中都相关。
在 UI 应用程序中,资源SynchronizationContext管理的是单个 UI 线程,因此如果阻止它,可能会出现死锁。在 ASP.NET 应用程序中,资源是请求上下文,您也可以在其上发生死锁。
您可以避免ConfigureAwait在控制台应用程序或 Windows 服务中使用,尽管在适当的情况下继续使用它仍然是一个好习惯。
| 归档时间: |
|
| 查看次数: |
4698 次 |
| 最近记录: |