我已经使用了一段时间的 async
/await
,但最近深入研究并阅读了很多最佳实践提示,其中说默认情况下应始终使用 ConfigureAwait(false)
防止死锁并提高性能。
当我假定只有当前存在 SynchronizationContext
或 TaskScheduler
时才会这样做,我想确保没有漏掉什么,这是正确的吗?
如果我有一个响应消息/命令等异步的 Windows 服务应用程序,它总是使用默认调度程序 = 可能与 awaitable 完成的线程池线程在上执行 continuation,因此无法从使用 ConfigureAwait(false)
获得死锁或性能差异,对吗?
这不像是不能放置它,但我非常讨厌嘈杂的代码...