Maison >développement back-end >C++ >Comment puis-je attendre plusieurs tâches asynchrones simultanément et accéder à leurs résultats?

Comment puis-je attendre plusieurs tâches asynchrones simultanément et accéder à leurs résultats?

Barbara Streisand
Barbara Streisandoriginal
2025-01-28 03:11:091034parcourir

How Can I Await Multiple Asynchronous Tasks Simultaneously and Access Their Results?

Gestion efficace de plusieurs opérations asynchrones simultanées

Cet exemple montre comment gérer trois opérations asynchrones indépendantes - FeedCat(), SellHouse() et BuyCar() - chacune de retour d'un objet distinct (chat, maison, Tesla respectivement). Le code nécessite que toutes les opérations se terminent avant de continuer et ont besoin d'accès aux résultats de chacun.

La solution optimale exploite Task.WhenAll() pour l'exécution parallèle et l'attente:

<code class="language-csharp">var catTask = FeedCat();
var houseTask = SellHouse();
var carTask = BuyCar();

await Task.WhenAll(catTask, houseTask, carTask);</code>

Après Task.WhenAll() confirme l'achèvement, les résultats individuels sont facilement accessibles:

<code class="language-csharp">var cat = await catTask;
var house = await houseTask;
var car = await carTask;</code>

Il est important de noter que les fonctions asynchrones renvoient les tâches "chaudes" (déjà initiées). Alors que Task.Result est une option (car l'achèvement est garanti), l'utilisation de await est généralement préférée pour sa lisibilité et son amélioration des erreurs.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn