Maison >développement back-end >C++ >Comment puis-je exécuter et collecter efficacement les résultats des tâches asynchrones parallèles dans .NET 4.5 ?
Exécutez des tâches asynchrones en parallèle et collectez les résultats dans .NET 4.5
Introduction :
Exécuter simultanément des tâches de longue durée et collecter leurs résultats est une exigence courante dans les applications .NET. Dans .NET 4.5, avec l'introduction de la programmation asynchrone, l'approche traditionnelle basée sur les threads a évolué. Cet article explore les meilleures façons d’implémenter l’exécution parallèle de tâches asynchrones dans .NET 4.5.
Code d'origine :
Le code fourni démontre l'approche de base consistant à utiliser Task.Run() pour lancer deux tâches de longue durée, puis à utiliser Result pour récupérer leurs résultats. Cependant, cette méthode présente certaines limites :
Code invalide :
Une tentative de création d'une tâche non en cours d'exécution
Meilleure solution :
La meilleure solution consiste à utiliser une version asynchrone d'une tâche de longue durée et à exploiter la méthode Task.WhenAll(). Un exemple est le suivant :
<code class="language-csharp">async Task<int> LongTask1() { // ...长时间运行的任务1... return 0; } async Task<int> LongTask2() { // ...长时间运行的任务2... return 1; } // ... { Task<int> t1 = LongTask1(); Task<int> t2 = LongTask2(); await Task.WhenAll(t1,t2); //现在我们可以访问t1.Result和t2.Result }</code>
Ce code crée des tâches asynchrones pour LongTask1 et LongTask2, puis attend qu'elles se terminent à l'aide de Task.WhenAll(). Cela permet aux tâches de s'exécuter simultanément sans blocage. Enfin, les résultats sont accessibles à l'aide de t1.Result et t2.Result.
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!