Task Parallel Library (TPL)Task Parallel Library (TPL)

La libreria Task Parallel Library (TPL) è un set di tipi e API pubblici negli spazi dei nomi System.Threading e System.Threading.Tasks.The Task Parallel Library (TPL) is a set of public types and APIs in the System.Threading and System.Threading.Tasks namespaces. Lo scopo di TPL è di rendere gli sviluppatori più produttivi mediante la semplificazione del processo di aggiunta di parallelismo e concorrenza alle applicazioni.The purpose of the TPL is to make developers more productive by simplifying the process of adding parallelism and concurrency to applications. La libreria TPL ridimensiona il grado di concorrenza dinamicamente per utilizzare in modo efficace tutti i processori disponibili.The TPL scales the degree of concurrency dynamically to most efficiently use all the processors that are available. La libreria TPL gestisce inoltre il partizionamento del lavoro, la pianificazione dei thread in ThreadPool, il supporto per l'annullamento, la gestione dello stato e altri dettagli di basso livello.In addition, the TPL handles the partitioning of the work, the scheduling of threads on the ThreadPool, cancellation support, state management, and other low-level details. Quando si utilizza TPL, è possibile ottimizzare le prestazioni del codice concentrandosi sulle operazioni per cui il programma è stato progettato.By using TPL, you can maximize the performance of your code while focusing on the work that your program is designed to accomplish.

A partire da .NET Framework 4, TPL è la soluzione più adatta per scrivere codice multithreading e parallelo.Starting with the .NET Framework 4, the TPL is the preferred way to write multithreaded and parallel code. Tuttavia, non tutto il codice è adatto per la parallelizzazione; ad esempio, se un ciclo esegue solo una piccola parte di lavoro in ciascuna iterazione o non viene eseguito per molte iterazioni, il sovraccarico della parallelizzazione potrebbe provocare un rallentamento dell'esecuzione del codice.However, not all code is suitable for parallelization; for example, if a loop performs only a small amount of work on each iteration, or it doesn't run for many iterations, then the overhead of parallelization can cause the code to run more slowly. Inoltre, la parallelizzazione come qualsiasi codice multithreading, aggiunge complessità all'esecuzione del programma.Furthermore, parallelization like any multithreaded code adds complexity to your program execution. Benché la libreria TPL semplifichi gli scenari multithreading, è consigliabile avere una conoscenza di base dei concetti relativi all'utilizzo dei thread, ad esempio blocchi, deadlock e race condition. Infatti, ciò consentirà di utilizzare la libreria TPL in modo più efficace.Although the TPL simplifies multithreaded scenarios, we recommend that you have a basic understanding of threading concepts, for example, locks, deadlocks, and race conditions, so that you can use the TPL effectively.

TitoloTitle DescriptionDescription
Parallelismo dei datiData Parallelism Viene descritto come creare cicli for e foreach paralleli (For e For Each in Visual Basic).Describes how to create parallel for and foreach loops (For and For Each in Visual Basic).
Programmazione asincrona basata su attivitàTask-based Asynchronous Programming Viene descritto come creare ed eseguire attività tramite Parallel.Invoke in modo implicito o direttamente tramite oggetti Task in modo esplicito.Describes how to create and run tasks implicitly by using Parallel.Invoke or explicitly by using Task objects directly.
Flusso di datiDataflow Viene descritto come utilizzare i componenti del flusso di dati nella libreria del flusso di dati TPL per gestire più operazioni che devono comunicare tra loro o elaborare dati man mano che diventano disponibili.Describes how to use the dataflow components in the TPL Dataflow Library to handle multiple operations that must communicate with one another or to process data as it becomes available.
Uso di TPL con altri modelli asincroniUsing TPL with Other Asynchronous Patterns Viene descritto come usare TPL con altri modelli asincroni in .NETDescribes how to use TPL with other asynchronous patterns in .NET
Problemi potenziali nel parallelismo di dati e attivitàPotential Pitfalls in Data and Task Parallelism Vengono descritti alcuni problemi comuni e il modo per evitarli.Describes some common pitfalls and how to avoid them.
Parallel LINQ (PLINQ)Parallel LINQ (PLINQ) Viene descritto come realizzare il parallelismo dei dati con le query LINQ.Describes how to achieve data parallelism with LINQ queries.
Programmazione parallelaParallel Programming Nodo di livello superiore per la programmazione parallela di .NET.Top level node for .NET parallel programming.

Vedere ancheSee also