我正在使用带有WebJobsSDK的Windows Azure,我想知道,在调用异步方法时,我是否应该在等待的调用中添加ConfigureAwait(false)。换句话说,SDK是否需要异步方法返回原始上下文才能继续正常运行?
答案 0 :(得分:3)
SDK是否需要异步方法返回原始上下文才能继续正常运行?
我不知道这个问题的答案; 可能依赖于主机。也就是说,SDK本身不需要特定的上下文,但主机可能。
但是,我说它并不重要。考虑到这个问题:
我应该在Azure WebJobsSDK的顶级调用中使用ConfigureAwait(false)
如果需要上下文,那么主持人将提供上下文,您不应该使用ConfigureAwait(false)
。
如果没有上下文,那么主持人将不会提供上下文,并且您是否使用ConfigureAwait(false)
并不重要。
如果提供了上下文但不需要上下文,那么使用ConfigureAwait(false)
可以将开销减少一点点 - 不会失去睡眠。
因此,我要说捕获上下文(即不使用ConfigureAwait(false)
)是任何主机上最安全的解决方案。