"始终使用 `TaskCreationOptions.RunContinuationsAsynchronously` 创建 `TaskCompletionSource<T>`" 可能会过度纠正。

作者: LBensman创建于 2021年5月21日更新于 2024年11月7日

我认为至少应该在两个方面澄清这个建议:改进示例,以实际展示死锁或其他不利情况如何发生(示例仅显示在同一线程上运行时,而不是说明发生这种情况时如何陷入困境;我没有在 C# 中的头部看到这样的示例,但请参阅脚注<sup>2</sup>);并突出强调使用此标志时的性能 trade-off,因为它确实会带来惩罚!事实上,我花了几天时间思考这个问题,而且我越想越开始倾向于认为这可能实际上是一个反效果(好吧,糟糕,原谅我。)。以下是我的理由。

内容来源: davidfowl/AspNetCoreDiagnosticScenarios