我正在使用Windows Azure和WebJobsSDK,我想知道在调用aync方法时,我是否应该将ConfigureAwait(false)添加到等待的调用中。 换句话说,SDK 是否需要异步方法返回到原始上下文才能继续正常运行?
SDK 是否需要异步方法返回到原始上下文才能继续正常运行?
我不知道这个问题的答案;这可能取决于主机。也就是说,SDK 本身不需要特定的上下文,但主机可能需要。
但是,我想说这并不重要。考虑这个问题:
我应该在Azure WebJobsSDK的顶级调用中使用ConfigureAwait(false)
如果需要上下文,则主机将提供上下文,您不应使用ConfigureAwait(false)
。
如果没有上下文,则主机将不会提供上下文,并且是否使用ConfigureAwait(false)
都无关紧要。
如果提供了上下文但不是必需的,那么使用ConfigureAwait(false)
将减少您的开销很小 - 而不是失眠的东西。
所以,我想说捕获上下文(即不使用ConfigureAwait(false)
)是跨任何主机的最安全的解决方案。