等待 IAsyncAction 时应该使用 ConfigureAwait(false) 吗?
Should I use ConfigureAwait(false) when awaiting IAsyncAction?
推荐,例如here 在等待的任务上尽可能多地使用 ConfigureAwait(false)
。
此建议是否也扩展到 return IAsyncAction
的方法,例如 StreamSocket.ConnectAsync()
?
也就是说,不是简单地在我的 class 库中写这个:
await socket.ConnectAsync(hostName, port);
我宁愿写这个?
await socket.ConnectAsync(hostName, port).AsTask().ConfigureAwait(false);
是的。任何不需要其上下文的方法都是最佳实践,请使用 ConfigureAwait(false)
。配置是针对 await
(不是 Task
或 IAsyncAction
),并且那里有一个 await
应该配置。
推荐,例如here 在等待的任务上尽可能多地使用 ConfigureAwait(false)
。
此建议是否也扩展到 return IAsyncAction
的方法,例如 StreamSocket.ConnectAsync()
?
也就是说,不是简单地在我的 class 库中写这个:
await socket.ConnectAsync(hostName, port);
我宁愿写这个?
await socket.ConnectAsync(hostName, port).AsTask().ConfigureAwait(false);
是的。任何不需要其上下文的方法都是最佳实践,请使用 ConfigureAwait(false)
。配置是针对 await
(不是 Task
或 IAsyncAction
),并且那里有一个 await
应该配置。