Concurrency in C# Cookbook (Recettes de programmation parallèle en C#)
284 pages
French
PDF
4.5

Concurrency in C# Cookbook (Recettes de programmation parallèle en C#)

Concurrency in C# Cookbook (Recettes de programmation parallèle en C#)

Auteur :

Année :

Résumé :

Introduction

Le livre « Concurrency in C# Cookbook » (dans sa traduction russe — « Recettes de programmation parallèle en C# ») de Stephen Cleary est l'un des meilleurs guides pratiques pour la programmation asynchrone et parallèle dans l'écosystème .NET. Publié en 2019 (deuxième édition), il s'agit d'un recueil de solutions éprouvées pour les tâches typiques rencontrées par tout développeur C# travaillant avec le multithreading, l'asynchronisme et le parallélisme.

Le livre est destiné aux praticiens : il n'y a pas de théorie superflue, mais des recettes claires et prêtes à l'emploi. Chaque recette contient un énoncé du problème, le code de la solution, des explications et des mises en garde. Cela en fait un ouvrage de référence indispensable pour ceux qui souhaitent écrire du code C# efficace, sûr et évolutif.

De quoi parle ce livre

Le livre couvre tous les aspects clés de la programmation parallèle dans .NET, depuis les bases de async/await jusqu'aux sujets avancés tels que la programmation réactive (Rx.NET), les canaux (Channels) et les tests de code asynchrone. Le livre compte 15 chapitres, chacun dédié à un domaine spécifique :

  • Chapitre 1. Les bases de async/await — création et attente de tâches, gestion des erreurs, annulation d'opérations.
  • Chapitre 2. Flux de données (Dataflow) — la bibliothèque TPL Dataflow pour construire des pipelines de traitement de données.
  • Chapitre 3. Programmation réactive (Rx) — travail avec les séquences Observable.
  • Chapitre 4. Collections parallèles — ConcurrentDictionary, ConcurrentQueue et autres structures thread-safe.
  • Chapitre 5. Verrous et synchronisation — SemaphoreSlim, ReaderWriterLockSlim, AsyncLock.
  • Chapitre 6. Canaux (Channels) — le nouveau mécanisme Producer/Consumer dans .NET Core.
  • Chapitre 7. Tests de code asynchrone — mocks, timeouts, vérification de l'exactitude.
  • Chapitre 8. Scénarios avancés — flux asynchrones (IAsyncEnumerable), ValueTask, ConfigureAwait.

Chaque recette est construite selon un modèle unique : problème → solution → discussion → mises en garde. Cela permet de trouver rapidement la réponse souhaitée et de l'appliquer immédiatement dans votre projet.

À qui s'adresse ce livre

Le livre est destiné aux développeurs C# ayant déjà une expérience de base du langage et de la plateforme .NET. Il sera utile :

  • Aux développeurs backend créant des services à forte charge sur ASP.NET Core.
  • Aux développeurs d'applications de bureau (WPF, WinForms) souhaitant éviter les blocages de l'interface utilisateur.
  • Aux ingénieurs passant de .NET Framework à .NET Core/.NET 5+ pour maîtriser les approches modernes de l'asynchronisme.
  • Aux chefs d'équipe et architectes qui doivent prendre des décisions sur le choix des outils pour le traitement parallèle.

Les débutants en programmation asynchrone devraient d'abord lire les chapitres d'introduction, mais dans l'ensemble, le livre suppose que le lecteur connaît déjà les bases de C#.

Ce que le lecteur apprendra

Après avoir étudié le livre, vous serez en mesure de :

  • Utiliser correctement async/await sans deadlocks ni race conditions.
  • Construire des pipelines de traitement de données avec TPL Dataflow.
  • Travailler avec des flux réactifs (Rx.NET) pour le traitement d'événements et de données en continu.
  • Choisir la collection thread-safe appropriée pour une tâche spécifique.
  • Implémenter des verrous asynchrones et d'autres primitives de synchronisation.
  • Utiliser les canaux (Channels) pour une communication efficace entre producteur et consommateur.
  • Écrire des tests pour du code asynchrone avec xUnit et Moq.
  • Comprendre la différence entre Task, ValueTask, IAsyncEnumerable et choisir le type optimal.

Points forts du livre

Recommendations