Maison >développement back-end >C++ >Comment puis-je exécuter efficacement des tâches asynchrones parallèles dans .NET 4.5 ?
Optimisation des opérations asynchrones parallèles dans .NET 4.5
.NET 4.5 offre de robustes capacités de programmation asynchrone pour l'exécution simultanée de plusieurs tâches longues. Cependant, certaines implémentations initiales peuvent paraître trop complexes et manquer de l’élégance inhérente aux méthodologies asynchrones. Cet exemple amélioré corrige ces lacunes.
Structure de code améliorée
Le code affiné suivant offre une approche plus efficace et rationalisée :
<code class="language-csharp">async Task GoAsync() { Console.WriteLine("Initiating Tasks"); Task<int> task1 = SleepAsync(5000); Task<int> task2 = SleepAsync(3000); await Task.WhenAll(task1, task2); int totalSleepTime = task1.Result + task2.Result; Console.WriteLine($"Total sleep time: {totalSleepTime} ms"); } private async Task<int> SleepAsync(int milliseconds) { Console.WriteLine($"Sleeping for {milliseconds} ms"); try { await Task.Delay(milliseconds); return milliseconds; } finally { Console.WriteLine($"Sleep for {milliseconds} ms COMPLETE"); } }</code>
Améliorations clés :
GoAsync
est désormais une méthode asynchrone (async Task
), permettant d'utiliser await
pour gérer l'achèvement des tâches.SleepAsync
est une méthode asynchrone renvoyant Task<int>
, reflétant la nature asynchrone de l'opération.Task.WhenAll
attend efficacement l'achèvement des deux tâches simultanément, éliminant le besoin d'un accès .Result
explicite et améliorant les performances.Code fonctionnel :
Ce code révisé exécute les deux tâches simultanément, collectant efficacement les résultats. Cette méthode fournit une solution plus propre, plus concise et efficace pour l'exécution de tâches asynchrones parallèles 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!