Multi Threading

La loi de Moore ayant atteint ses limites, la programmation parallèle, basée sur le multl-threading est aujourd’hui en train de se généraliser pour continuer d’améliorer les performances des applications. Bien qu’elle soit présente au sein de la toute première version du Framework .NET, cette technique a considérablement évoluée avec les Tasks venues avec Framework 4 puis de nouveau avec le pattern async/await dans les versions qui ont suivies. Cette session vous permettra de connaître et mettre en œuvre ces différentes techniques.
Programmation avec le langage C#
Filière
Programmation
 
Code cours
MT
 
Niveau
Avancé
 
Durée
1 Jours

Participants

Ce cours s'adresse à des développeurs professionnels, souhaitant optimiser les temps de réponses des applications C#.

Prérequis

Connaissance de Visual Studio et du langage C#. Expérience requise.

Profils : Développeur débutant/occasionnel

Équivalence : Cours CS2

Objectifs

  • Principe des processus et des threads.
  • Comprendre les concepts du multi-threading (Parallélisme, Asynchronisme et concurrence).
  • Présentation des générations des techniques de threading en .NET
  • Mise en œuvre de la TPL (Tasks Parrallel Tasks) et du pattern async-await.

Travaux pratiques

  • Mise en évidence des inconvénients de la classe Thread et du modèle de programmation associé avec l’interface IAsyncResult.
  • Mise en évidence des inconvénients du threading basé sur l’événement Completed.
  • Mise en évidence des avantages de la classe Task.
  • Mise en œuvre de la TPL (échange de donnés, récupération des erreurs et synchronisation).
  • Mise en œuvre des différentes techniques de gestion de la concurrence (Classes Interloked, CountDown, Barrier, instruction lock, délégués asynchrones et Dispatcher WPF).
  • Mise en œuvre du pattern async-await.