Condividi tramite


Task Parallel Library (TPL)

Task Parallel Library (TPL) è un set di tipi pubblici e API nei namespace System.Threading e System.Threading.Tasks. Lo scopo del TPL è rendere gli sviluppatori più produttivi semplificando il 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. Inoltre, il TPL gestisce 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. Usando TPL, è possibile ottimizzare le prestazioni del codice concentrandosi sul lavoro che il programma è progettato per eseguire.

In .NET Framework 4 il TPL è il modo preferito per scrivere codice multithreading e parallelo. Tuttavia, non tutto il codice è adatto per la parallelizzazione. Ad esempio, se un ciclo esegue solo una piccola quantità di lavoro su ogni iterazione o non viene eseguito per molte iterazioni, l'overhead della parallelizzazione può causare un'esecuzione più lenta del codice. Inoltre, la parallelizzazione, come qualsiasi codice multithreading, aggiunge complessità all'esecuzione del programma. Anche se il TPL semplifica gli scenari multithreading, è consigliabile avere una conoscenza di base dei concetti di threading, ad esempio blocchi, deadlock e race condition, in modo da poter usare in modo efficace il TPL.

Titolo Descrizione
parallelismo dei dati Viene illustrato 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à in modo implicito usando Parallel.Invoke o in modo esplicito tramite Task oggetti direttamente.
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 diventano disponibili.
Potenziali insidie nel parallelismo di dati e attività Descrive alcune insidie comuni e come evitarle.
LINQ parallelo (PLINQ) Viene descritto come ottenere il parallelismo dei dati con le query LINQ.
programmazione parallela Nodo di primo livello per la programmazione parallela .NET.

Vedere anche