Gérer les tâches simultanées et récupérer les résultats dans C #
Un défi fréquent dans la programmation C # consiste à gérer plusieurs tâches asynchrones qui doivent s'exécuter simultanément et renvoyer des résultats individuels. Cet article démontre une approche efficace en utilisant Task.WhenAll
.
Voici un scénario: imaginez trois tâches indépendantes: nourrir un chat, vendre une maison et acheter une voiture. Chaque tâche est asynchrone et produit un résultat unique.
private async Task<Cat> FeedCat() { /* ... */ } private async Task<House> SellHouse() { /* ... */ } private async Task<Tesla> BuyCar() { /* ... */ } async Task Main() { 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; }
La méthode Task.WhenAll
initie les trois tâches simultanément. Une fois WhenAll
terminé (signaler toutes les tâches terminées), vous pouvez récupérer en toute sécurité le résultat de chaque tâche en utilisant des opérations individuelles await
. Les méthodes asynchrones renvoient implicitement les tâches déjà démarrées.
Bien que l'utilisation de Task.Result
est possible après WhenAll
, car l'achèvement des tâches est garantie, l'approche await
est généralement recommandée pour sa lisibilité et sa robustesse améliorées dans des scénarios plus complexes.
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!