【发布时间】:2019-08-27 17:58:09
【问题描述】:
通常建议在不需要上下文时等待异步调用时使用ConfigureAwait(false)。只是想知道在 Azure Functions 中使用 ConfigureAwait(false) 有什么好处。
Azure Function 线程是否具有非空 SynchronizationContext,因此使用 ConfigureAwait(false) 以避免不必要地捕获它并将等待继续重新安排回捕获的 SynchronizationContext 上会很有帮助?
在每次异步调用的末尾添加ConfigureAwait(false) 有点麻烦,因此如果没有性能/或任何其他相关增益,则更愿意避免在 Azure Functions 中运行的代码使用它。
似乎 azure function host 在调用 azure function 之前尝试剥离 ASP.NET SynchronizationContext。
【问题讨论】:
-
关于使用
ConfigureAwait(false)获取服务器端代码的任何来源?我记得,情况恰恰相反。 -
参考这里:msdn.microsoft.com/en-us/magazine/jj991977.aspx 建议尽可能使用它,但需要实际上下文的方法除外。尽管如此,这个问题是针对 azure 函数的。
标签: async-await azure-functions azure-functions-runtime synchronizationcontext azure-function-async