비동기 프로그래밍에서는 동시에 실행되는 여러 작업의 결과가 필요한 경우가 많습니다. 각 작업은 잠재적으로 서로 다른 데이터 유형을 반환합니다. 세 가지 예제 작업을 통해 설명해 보겠습니다.
Cat
객체를 반환합니다.House
객체를 반환합니다.Tesla
객체를 반환합니다.계속하려면 모든 결과가 필요합니다. 순차적 실행도 가능하지만 동시 실행이 훨씬 더 효율적입니다. 문제는 다양한 결과 유형을 처리하는 것입니다.
Task.WhenAll
및 개별 대기해결책에는 제공된 모든 작업이 완료될 때까지 기다리는 Task.WhenAll
이 포함됩니다. 완료 후 await
:
<code class="language-csharp">var catTask = FeedCat(); var houseTask = SellHouse(); var carTask = BuyCar(); await Task.WhenAll(catTask, houseTask, carTask); var cat = await catTask; var house = await houseTask; var car = await carTask;</code>
Task.WhenAll
은 모든 하위 작업(catTask
, houseTask
, carTask
)이 완료된 경우에만 완료되는 상위 작업을 생성합니다. 이후 각 하위 작업을 기다리면 개별적으로 특정 결과가 검색됩니다.
위 내용은 다양한 결과 유형으로 여러 비동기 작업을 효율적으로 기다릴 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!