Maison > développement back-end > C++ > Comment puis-je exécuter et récupérer efficacement les résultats de plusieurs tâches asynchrones avec différents types de retour ?

Comment puis-je exécuter et récupérer efficacement les résultats de plusieurs tâches asynchrones avec différents types de retour ?

Linda Hamilton
Libérer: 2025-01-28 03:26:08
original
506 Les gens l'ont consulté

How Can I Efficiently Execute and Retrieve Results from Multiple Asynchronous Tasks with Different Return Types?

Gestion des opérations asynchrones simultanées avec des types de retour variés

Cet exemple montre comment exécuter simultanément plusieurs tâches asynchrones, chacune renvoyant un type de résultat différent, et récupérer efficacement ces résultats. Imaginez trois fonctions asynchrones :

public class AsyncOperations {

    private async Task<Cat> FeedCatAsync() { ... }
    private async Task<House> SellHouseAsync() { ... }
    private async Task<Tesla> BuyCarAsync() { ... }

}
Copier après la connexion

Nous utiliserons Task.WhenAll pour les exécuter simultanément et collecter les résultats.

// Instantiate the class containing asynchronous methods
var operations = new AsyncOperations();

// Initiate the tasks
var catTask = operations.FeedCatAsync();
var houseTask = operations.SellHouseAsync();
var carTask = operations.BuyCarAsync();

// Execute concurrently and wait for completion
await Task.WhenAll(catTask, houseTask, carTask);

// Retrieve results
var cat = await catTask;
var house = await houseTask;
var car = await carTask;

// Process the results...
Copier après la connexion

Task.WhenAll s'assure que toutes les tâches sont terminées avant de continuer. Le mot-clé await est essentiel pour gérer correctement les opérations asynchrones ; cela évite de bloquer le thread principal en attendant les résultats. Bien que Task.Result offre une alternative pour récupérer les résultats, elle est généralement moins préférée en raison de problèmes de blocage potentiels. Cette approche fournit un moyen propre et efficace de gérer des tâches asynchrones simultanées avec diverses valeurs de retour.

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 de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal