> 백엔드 개발 > C++ > 다양한 결과 유형으로 여러 비동기 작업을 효율적으로 기다릴 수 있습니까?

다양한 결과 유형으로 여러 비동기 작업을 효율적으로 기다릴 수 있습니까?

Susan Sarandon
풀어 주다: 2025-01-28 03:16:08
원래의
150명이 탐색했습니다.

다양한 반환 유형을 사용하여 여러 비동기 작업을 효율적으로 처리

비동기 프로그래밍에서는 동시에 실행되는 여러 작업의 결과가 필요한 경우가 많습니다. 각 작업은 잠재적으로 서로 다른 데이터 유형을 반환합니다. 세 가지 예제 작업을 통해 설명해 보겠습니다.

  • FeedCat(): Cat 객체를 반환합니다.
  • SellHouse(): House 객체를 반환합니다.
  • BuyCar(): 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)이 완료된 경우에만 완료되는 상위 작업을 생성합니다. 이후 각 하위 작업을 기다리면 개별적으로 특정 결과가 검색됩니다.

How Can I Efficiently Await Multiple Asynchronous Tasks with Diverse Result Types?

위 내용은 다양한 결과 유형으로 여러 비동기 작업을 효율적으로 기다릴 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿