【发布时间】:2022-10-07 14:13:51
【问题描述】:
由于使用任何可用线程的能力,ConfigureAwait(false) 提供了更好的性能。 John Sharpe 的 C# Step by Step 书说:“如果在等待语句之后运行的代码需要在原始线程上运行,则不应使用 ConfigureAwait(false)。”
我有三个问题:
- 在什么情况下我可能需要使用 ConfigureAwait(true) 或根本不使用 ConfigureAwait,据我了解,这是一回事吗?为什么有必要在原始线程上执行代码?
- 为什么开发人员没有像 ConfigureAwait(false) 那样制作默认逻辑,因为它在性能方面要好得多?
- 为了提高性能,我是否应该始终使用 ConfigureAwait(true)?
-
您首先要说明 false 选项可以提供更好的性能(无论它是否提供更好的性能,因为没有一个固定的性能定义,因此仍然值得商榷),然后在 3)中询问您是否应该使用 true 来获取更好的性能。无论您使用什么定义,它们都不能提供更好的性能。
标签: c# asynchronous