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