我应该在Azure WebJobsSDK的顶级调用中使用ConfigureAwait(false)

时间:2017-05-23 13:13:40

标签: c# azure azure-webjobssdk

我正在使用带有WebJobsSDK的Windows Azure,我想知道,在调用异步方法时,我是否应该在等待的调用中添加ConfigureAwait(false)。换句话说,SDK是否需要异步方法返回原始上下文才能继续正常运行?

1 个答案:

答案 0 :(得分:3)

  

SDK是否需要异步方法返回原始上下文才能继续正常运行?

我不知道这个问题的答案; 可能依赖于主机。也就是说,SDK本身不需要特定的上下文,但主机可能。

但是,我说它并不重要。考虑到这个问题:

  

我应该在Azure WebJobsSDK的顶级调用中使用ConfigureAwait(false)

如果需要上下文,那么主持人将提供上下文,您不应该使用ConfigureAwait(false)

如果没有上下文,那么主持人将不会提供上下文,并且您是否使用ConfigureAwait(false)并不重要。

如果提供了上下文但不需要上下文,那么使用ConfigureAwait(false)可以将开销减少一点点 - 不会失去睡眠。

因此,我要说捕获上下文(即不使用ConfigureAwait(false))是任何主机上最安全的解决方案。