Permalink
Fetching contributors…
Cannot retrieve contributors at this time
40 lines (35 sloc) 4.21 KB
title ms.custom ms.date ms.prod ms.reviewer ms.suite ms.technology ms.tgt_pltfrm ms.topic helpviewer_keywords ms.assetid caps.latest.revision author ms.author manager
Parallel Programming in the .NET Framework
03/30/2017
.net
dotnet-standard
article
parallel programming
4d83c690-ad2d-489e-a2e0-b85b898a672d
19
rpetrusha
ronpet
wpickett

Parallel Programming in the .NET Framework

Many personal computers and workstations have two or four cores (that is, CPUs) that enable multiple threads to be executed simultaneously. Computers in the near future are expected to have significantly more cores. To take advantage of the hardware of today and tomorrow, you can parallelize your code to distribute work across multiple processors. In the past, parallelization required low-level manipulation of threads and locks. [!INCLUDEvs_dev10_long] and the [!INCLUDEnet_v40_short] enhance support for parallel programming by providing a new runtime, new class library types, and new diagnostic tools. These features simplify parallel development so that 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. The following illustration provides a high-level overview of the parallel programming architecture in the [!INCLUDEnet_v40_short].

.NET Parallel Programming Architecture

Related Topics

Technology Description
Task Parallel Library (TPL) Provides documentation for the xref:System.Threading.Tasks.Parallel?displayProperty=nameWithType class, which includes parallel versions of For and ForEach loops, and also for the xref:System.Threading.Tasks.Task?displayProperty=nameWithType class, which represents the preferred way to express asynchronous operations.
Parallel LINQ (PLINQ) A parallel implementation of LINQ to Objects that significantly improves performance in many scenarios.
Data Structures for Parallel Programming Provides links to documentation for thread-safe collection classes, lightweight synchronization types, and types for lazy initialization.
Parallel Diagnostic Tools Provides links to documentation for Visual Studio debugger windows for tasks and parallel stacks, and the Concurrency Visualizer, which consists of a set of views in the [!INCLUDEvsprvsts] Profiler that you can use to debug and to tune the performance of parallel code.
Custom Partitioners for PLINQ and TPL Describes how partitioners work and how to configure the default partitioners or create a new partitioner.
Task Schedulers Describes how schedulers work and how the default schedulers may be configured.
Lambda Expressions in PLINQ and TPL 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.
For Further Reading Provides links to additional documentation and sample resources for parallel programming in the .NET Framework.

See Also

Patterns for Parallel Programming: Understanding and Applying Parallel Patterns with the .NET Framework 4
Samples for Parallel Programming with the .NET Framework