正如您所知,当您在代码中等待一个不需要捕获同步上下文的任务时,调用 Task.ConfigureAwait(false)
是一个好主意,因为它可以在其他情况下调用 造成僵局。
您需要多久捕获一次同步上下文?我的工作,很少。在大多数情况下,我使用的是“库”代码,这几乎迫使我一直使用 Task.ConfigureAwait(false)
。
所以我的问题很简单: 为什么 Task.ConfigureAwait(false)
不是任务的默认选项?强制“高级”代码使用 Task.ConfigureAwait(true)
不是更好吗?是有历史原因,还是我遗漏了什么?