Comprendre Task.WhenAll et Task.WaitAll
Objectifs
Les objectifs de cette vidéo sont de :
- Montrer comment paralléliser des tâches en C#.
- Expliquer les différences et utilisations de Task.WhenAll et Task.WaitAll.
- Illustrer comment éviter les problèmes courants liés à la parallélisation.
Résumé
Apprenez à paralléliser des tâches et à attendre leur achèvement en utilisant Task.WhenAll et Task.WaitAll dans C#.
Description
Dans cette leçon, nous découvrirons comment paralléliser des tâches en C# et attendre leur achèvement grâce aux méthodes Task.WhenAll et Task.WaitAll. Nous examinerons un exemple où nous avons une méthode qui prend du temps à s'exécuter et que nous devons appeler plusieurs fois en parallèle.
Tout d'abord, nous verrons comment lancer plusieurs tâches en parallèle sans attendre à chaque itération d'une boucle for. Ensuite, nous comprendrons pourquoi il est essentiel de vérifier que les tâches peuvent être parallélisées sans conflit d'accès, comme l'écriture dans un même fichier ou l'accès à un même service.
Nous utiliserons une liste de tâches pour stocker ces tâches et utiliserons la méthode Task.WhenAll pour attendre leur achèvement dans du code asynchrone. Pour du code synchrone, nous verrons comment utiliser Task.WaitAll, même si cela nécessite une petite transformation de la liste en tableau. Enfin, nous illustrerons comment éviter les deadlocks et gérer correctement le code synchrone et asynchrone.
Il faut être persévérant, mais le résultat est là : un très bon approfondissement du C#.