このシナリオでは、そのルートに行く前に実行可能かどうかをチェックしたかったのです。トップレベルの機能を持つネストされた非同期コールが待ち受けています
私はwebApiプロジェクトを持っていますが、HttpContext.Current.Itemsにデータを追加するdelegateHandlerがあります。コントローラでは、私がconfigureawait(false)を使ってやっている非同期呼び出しはほとんどありません。ライブラリDLLと同じです。
全体のコードは、この..... DLLで
コントローラで
public async Task<Entity> func()
{
HttpContext.Current.Items.Add(key, value);
await DBCalls.Method1Async().configureawait(false);
await DBCalls.Method2Async().configureawait(false);
var data = HttpContext.Current.Items[key];
// rest of the method
}
のように見える実行が背中に再開したときに、クラスDBCalls
async void Method1Async()
{
await internalMethod1().configureawait(false)
}
async void Method2Async()
{
await internalMethod2().configureawait(false)
}
質問ですコントローラの関数は、HttpContext.Current.Itemsから戻って格納されたデータを取得しますか?
[この](http://stackoverflow.com/questions/ 28427675 /正しい使用方法 - httpcontext-current-user-with-async-await)は一般的にあなたの質問に答えるべきです。 –
@Yuval Itzchakov私はTask.WhenAll(task1、task2)へのコードを変更するとコントローラーで意味しますか.configureawait(true);これはリクエストコンテキストを再入力する必要があります – akhileshcoer