Introduction à la Parallélisation en C#

Parallélisation
Vidéo non disponible ! Réessayez plus tard
Cette vidéo fait partie de la formation
Apprendre C# - Notions avancées
Revoir le teaser Je m'abonne
5,0
Transcription

49,00€ Je commande

Formation incluse dans l'abonnement Elephorm Je m'abonne à Elephorm

DescriptionProgrammeAvis
5,0
49,00€ Je commande

Formation incluse dans l'abonnement Elephorm Je m'abonne à Elephorm

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.

Apprenez à paralléliser des tâches et à attendre leur achèvement en utilisant Task.WhenAll et Task.WaitAll dans C#.

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.

Voir plus
Questions réponses
Pourquoi ne devrions-nous pas utiliser 'await' dans chaque itération d'une boucle 'for' pour des tâches parallèles ?
En utilisant 'await' dans chaque itération, nous attendons la fin de la tâche avant de passer à l'itération suivante, ce qui empêche la véritable parallélisation.
Quelle est la différence entre 'Task.WhenAll' et 'Task.WaitAll' en C# ?
'Task.WhenAll' renvoie une tâche permettant d'attendre de manière asynchrone toutes les tâches dans une collection, tandis que 'Task.WaitAll' attend de manière bloquante et nécessite un tableau comme paramètre.
Comment éviter les conflits d'accès lors de la parallélisation de tâches ?
Il est essentiel de vérifier que les tâches accèdent à des ressources distinctes. Si elles partagent une ressource, des mécanismes de synchronisation comme des verrous peuvent être nécessaires.
1 commentaire
5,0
1 vote
5
4
3
2
1
martial.cornet
Il y a 4 ans
Très bonne formation faisant suite aux fondamentaux.
Il faut être persévérant, mais le résultat est là : un très bon approfondissement du C#.