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. Lo scopo di TPL è di rendere gli sviluppatori più produttivi mediante la semplificazione del processo di aggiunta di parallelismo e concorrenza alle applicazioni. Il TPL ridimensiona in modo dinamico il grado di concorrenza per usare tutti i processori disponibili in modo più efficiente. 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. Quando si utilizza TPL, è possibile ottimizzare le prestazioni del codice concentrandosi sulle operazioni per cui il programma è stato progettato.

In .NET Framework 4, TPL è la soluzione più adatta per scrivere codice multithreading e parallelo. 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. Inoltre, la parallelizzazione come qualsiasi codice multithreading, aggiunge complessità all'esecuzione del programma. 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.

Posizione Descrizione
Parallelismo dei dati Viene descritto come creare cicli for e foreach paralleli (For e For Each in Visual Basic).
Programmazione asincrona basata su attività Viene descritto come creare ed eseguire attività tramite Parallel.Invoke in modo implicito o direttamente tramite oggetti Task in modo esplicito.
Flusso di dati Viene descritto come usare i componenti del flusso di dati nella libreria di flussi di dati TPL per gestire più operazioni. Queste operazioni devono comunicare tra loro ed elaborare i dati man mano che sono disponibili.
Problemi potenziali nel parallelismo di dati e attività Vengono descritti alcuni problemi comuni e il modo per evitarli.
Parallel LINQ (PLINQ) Viene descritto come realizzare il parallelismo dei dati con le query LINQ.
Programmazione parallela Nodo di livello superiore per la programmazione parallela di .NET.

Vedi anche