2017-05-23 4 views
1

WebJobsSDKでWindows Azureを使用していますが、同期メソッドを呼び出すときに、待っている呼び出しにConfigureAwait(false)を追加する必要があるのでしょうか。言い換えれば、SDKは、正常に機能し続けるために元のコンテキストに戻るために非同期メソッドを必要としますか?Azure WebJobsSDKのトップレベルの呼び出しでConfigureAwait(false)を使用する必要があります

答えて

2

SDKは正しく機能し続けるために元のコンテキストに戻るにはasyncメソッドが必要ですか?

私はこの質問に対する答えは分かりません。それはかもしれないはホストに依存します。つまり、SDK自体は特定のコンテキストを必要としませんが、ホストは可能性があります。

しかし、それは問題ではないと思います。この質問を考慮:

私はAzureのWebJobsSDKコンテキストが必要な場合

のトップレベルのコールに(偽)ConfigureAwaitを使用すべきことは、その後、ホストは、コンテキストを提供します、そして、あなたはいけませんConfigureAwait(false)を使用してください。

コンテキストがない場合、ホストはコンテキストを提供せず、ConfigureAwait(false)を使用するかどうかは関係ありません。

コンテキストが提供されていても必須ではない場合は、ConfigureAwait(false)を使用すると、ごくわずかな量でオーバーヘッドを減らすことができます。

したがって、コンテキストをキャプチャする(つまり、ConfigureAwait(false)を使用しない)ことは、どのホストでも最も安全なソリューションだと思います。

関連する問題