我将 Windows Azure 与 WebJobsSDK 一起使用,我想知道在调用 ync 方法时是否应该将 ConfigureAwait(false) 添加到等待的调用中。换句话说,SDK 是否需要异步方法返回到原始上下文才能继续正常运行?
请您参考如下方法:
does the SDK require the async methods to return to the original context to continue to function properly?
我不知道这个问题的答案;它可能取决于主机。也就是说,SDK 本身不需要特定的上下文,但主机可能需要。
不过,我会说这没关系。考虑这个问题:
Should I use ConfigureAwait(false) in the top level call of Azure WebJobsSDK
如果需要上下文,那么主机将提供上下文,您不应该使用 ConfigureAwait(false)。
如果没有context,宿主就不会提供context,你是否使用ConfigureAwait(false)都没有关系。
如果提供了一个上下文但它不是必需的,那么使用 ConfigureAwait(false) 将减少您的开销非常非常小的数量 - 不会因为这些而失眠。
因此,我认为捕获上下文(即不使用 ConfigureAwait(false))是跨任何主机的最安全解决方案。
