3
複数の非同期サービスを並行して呼び出す
互いに依存しない非同期RESTサービスはほとんどありません。それは、Service1からの応答を「待っている」間で、Service2、Service3などを呼び出すことができます。 たとえば、以下のコードを参照してください。 var service1Response = await HttpService1Async(); var service2Response = await HttpService2Async(); // Use service1Response and service2Response 現在、にservice2Response依存せず、service1Response独立して取得できます。したがって、最初のサービスの応答を待って2番目のサービスを呼び出す必要はありません。 Parallel.ForEachCPUバウンド操作ではないため、ここで使用できるとは思わない。 これらの2つの操作を並行して呼び出すために、useを呼び出すことができますTask.WhenAllか?私が使用してTask.WhenAllいる問題の1つは、結果を返さないことです。結果を取得するには、を呼び出したtask.Result後に呼び出すことができます。Task.WhenAllすべてのタスクが既に完了しており、応答を取得する必要があるためです。 サンプルコード: var task1 = HttpService1Async(); var task2 = HttpService2Async(); await Task.WhenAll(task1, task2) var result1 = task1.Result; var result2 = task2.Result; // Use result1 and result2 このコードは、パフォーマンスの面で最初のコードよりも優れていますか?私が使用できる他のアプローチはありますか?