Programmation parallèle en .NETParallel Programming in .NET

De nombreux ordinateurs personnels et stations de travail ont plusieurs cœurs de processeur qui permettent à plusieurs threads de s’exécuter simultanément.Many personal computers and workstations have multiple CPU cores that enable multiple threads to be executed simultaneously. Pour tirer parti du matériel, vous pouvez paralléliser votre code pour distribuer le travail sur plusieurs processeurs.To take advantage of the hardware, you can parallelize your code to distribute work across multiple processors.

Dans le passé, la parallélisation nécessitait un niveau peu élevé de manipulation de threads et de verrous.In the past, parallelization required low-level manipulation of threads and locks. Visual Studio et le .NET Framework améliorent la prise en charge de la programmation parallèle en fournissant une exécution, des types de bibliothèques de classes et des outils de diagnostics.Visual Studio and the .NET Framework enhance support for parallel programming by providing a runtime, class library types, and diagnostic tools. Ces fonctionnalités, qui ont été introduites avec le .NET Framework 4, simplifient le développement parallèle.These features, which were introduced with the .NET Framework 4, simplify parallel development. Vous pouvez écrire du code parallèle efficace, à grains fins et évolutif dans un idiome naturel sans devoir utiliser directement des threads ou le pool de threads.You can write efficient, fine-grained, and scalable parallel code in a natural idiom without having to work directly with threads or the thread pool.

L’illustration suivante fournit une vue d’ensemble générale de l’architecture de programmation parallèle dans le .NET Framework :The following illustration provides a high-level overview of the parallel programming architecture in the .NET Framework:

Architecture de programmation parallèle du .NET

TechnologyTechnology DescriptionDescription
Bibliothèque parallèle de tâchesTask Parallel Library (TPL) Fournit la documentation pour la classe System.Threading.Tasks.Parallel, qui inclut des versions parallèles de For et des boucles ForEach, et également pour la classe System.Threading.Tasks.Task, qui représente la meilleure façon d'exprimer des opérations asynchrones.Provides documentation for the System.Threading.Tasks.Parallel class, which includes parallel versions of For and ForEach loops, and also for the System.Threading.Tasks.Task class, which represents the preferred way to express asynchronous operations.
Parallel LINQ (PLINQ)Parallel LINQ (PLINQ) Implémentation parallèle de LINQ to Objects qui améliore de manière significative la performance dans de nombreux scénarios.A parallel implementation of LINQ to Objects that significantly improves performance in many scenarios.
Structures de données pour la programmation parallèleData Structures for Parallel Programming Fournit des liens vers la documentation pour les classes de collection thread-safe, les types de synchronisation légers et les types pour l’initialisation tardive.Provides links to documentation for thread-safe collection classes, lightweight synchronization types, and types for lazy initialization.
Outils de diagnostic parallèleParallel Diagnostic Tools Fournit des liens vers la documentation relative aux fenêtres du débogueur Visual Studio pour les tâches et les piles parallèles, et au Visualiseur concurrentiel.Provides links to documentation for Visual Studio debugger windows for tasks and parallel stacks, and for the Concurrency Visualizer.
Partitionneurs personnalisés pour PLINQ et TPLCustom Partitioners for PLINQ and TPL Décrit le fonctionnement des partitionneurs et comment configurer les partitionneurs par défaut ou en créer.Describes how partitioners work and how to configure the default partitioners or create a new partitioner.
Planificateurs de tâchesTask Schedulers Décrit le fonctionnement des planificateurs et comment les planificateurs par défaut peuvent être configurés.Describes how schedulers work and how the default schedulers may be configured.
Expressions lambda dans PLINQ et TPLLambda Expressions in PLINQ and TPL Fournit une vue d’ensemble d’expressions lambda en C# et Visual Basic, et affiche comment elles sont utilisées dans PLINQ et la bibliothèque parallèle de tâches.Provides a brief overview of lambda expressions in C# and Visual Basic, and shows how they are used in PLINQ and the Task Parallel Library.
Pour plus d’informationsFor Further Reading Fournit des liens vers des informations supplémentaires et des exemples de ressources pour la programmation parallèle dans .NET.Provides links to additional information and sample resources for parallel programming in .NET.

Voir aussiSee also