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!