Maison >développement back-end >C++ >Comment puis-je exécuter deux tâches asynchrones simultanément et obtenir leurs résultats dans .NET 4.5 ?

Comment puis-je exécuter deux tâches asynchrones simultanément et obtenir leurs résultats dans .NET 4.5 ?

Linda Hamilton
Linda Hamiltonoriginal
2025-01-13 07:34:42492parcourir

How Can I Run Two Async Tasks Concurrently and Get Their Results in .NET 4.5?

Exécuter et récupérer efficacement les résultats de tâches asynchrones simultanées dans .NET 4.5

Ce guide présente une méthode simplifiée pour exécuter deux tâches asynchrones simultanément dans le framework .NET 4.5 et collecter efficacement leurs résultats respectifs. Les approches précédentes utilisant Task.Run() et Thread.Sleep() sont loin d'être idéales pour les opérations asynchrones.

Voici une solution améliorée :

<code class="language-csharp">async Task<int> LongTask1()
{
    // Simulate a long-running operation
    await Task.Delay(1000); // Replace with your actual asynchronous task
    return 0;
}

async Task<int> LongTask2()
{
    // Simulate a long-running operation
    await Task.Delay(1500); // Replace with your actual asynchronous task
    return 1;
}

// ... within your main method ...
{
    Task<int> task1 = LongTask1();
    Task<int> task2 = LongTask2();

    await Task.WhenAll(task1, task2);

    // Access results after both tasks have completed
    int result1 = task1.Result;
    int result2 = task2.Result;
    // ... process result1 and result2 ...
}</code>

Ce code affiné exploite la puissance de async/await :

  • LongTask1 et LongTask2 sont des méthodes asynchrones représentant vos opérations de longue durée. N'oubliez pas de remplacer Task.Delay() par votre logique asynchrone actuelle.
  • Task.WhenAll(task1, task2) garantit que les deux tâches sont terminées avant de continuer, synchronisant efficacement les résultats.
  • task1.Result et task2.Result permettent d'accéder aux valeurs renvoyées de chaque tâche une fois leur exécution terminée.

Cette approche offre une solution plus propre, plus efficace et véritablement asynchrone par rapport aux méthodes précédentes, éliminant le besoin de Task.Run() et le blocage inefficace des appels comme Thread.Sleep(). C'est la méthode recommandée pour gérer les tâches asynchrones simultanées dans .NET 4.5.

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