私はここで質問を調べましたが、私が見ているのは単純な理論BSです。だからここに私のシナリオです:私たちは新しいアプリケーションと1つの自分の古いシステムで消費者を甘やかす。したがって、評価が特定の状態に達したときのシステムでは、すべてのデータをサービスに送信する必要があります。返された複数のタスクを処理するにはどうすればいいですか<response>
最初の部分は単純です:レコードからデータを取得し、それをデータ管理に入れ、データを送信します。しかし、2番目の部分は、すべてのサポート文書を送信する必要があるため、滑りやすい場所です。実際の世界のケースでは、私は紹介文書、評価文書、および結果の要約を持っています。だから私のメインのコードで私はこれを言っている:
if (client.ReferralDocument != null)
response = TransmitDocumentAsync(client.ReferralDocument);
if (client.Assessment != null)
response = TransmitDocumentAsync(client.Assessment);
if (cilent.Summary != null)
response = TransmitDocumentAsync(client.Summary);
今と呼ばれる方法が非同期であり、それはだから私は基本的に「壁にわたって」それらの文書をスローすることができる午前単に
public static async Task<Response> TransmitDocumentAsync(byte[] document)
{
InterimResponse x = await proxy.InsertAttachmentAsync(document, identifier);
return new Task<Response>(new Response(InterimResponse);
}
です待機せずにアップロードすることができます。しかし、私が執着しているのは、返されたオブジェクトをどのように扱うか、どのドキュメントをどのように結びつけているかを知ることです。
返されたエラーを処理するために3つの呼び出しの後に追加する必要があるのは、他に何か問題や例外が発生した場合です。私はちょうどその帰りに待っていますか?私は3つの戻りオブジェクト(referalResponse、assessmentResponse、summaryResponse)を持っていて、それぞれについて待っていますか?私はこれを熟考し、結果を気にせずに物事を終了させますか? :)
'await Task.WhenAll(tasks)'? –