Biblioteca de tarefas paralelas (TPL)

A Biblioteca Paralela de Tarefas (TPL) é um conjunto de tipos e APIs públicos em System.Threading e namespaces do System.Threading.Tasks em. O objetivo da TPL é tornar os desenvolvedores mais produtivos ao simplificar o processo de adicionar paralelismo e concorrência em aplicativos. O TPL dimensiona dinamicamente o grau de simultaneidade para usar todos os processadores disponíveis com mais eficiência. Além disso, a TPL lida com o particionamento do trabalho, a programação de threads em ThreadPool, o suporte ao cancelamento, o gerenciamento de estados e outros detalhes de baixo nível. Ao usar a TPL, você pode maximizar o desempenho do seu código enquanto se concentra no trabalho para o qual seu programa foi criado para realizar.

No .NET Framework 4, o TPL é a forma preferida de escrever código paralelo e multithread. No entanto, nem todo código é adequado para paralelização. Por exemplo, se um loop executa somente uma pequena quantidade de trabalho em cada iteração, ou se ele não é executado para muitas iterações, a sobrecarga da paralelização pode fazer com que o código seja executado mais lentamente. Além disso, a paralelização, assim como qualquer código multithread, acrescenta complexidade à execução do seu programa. Embora a TPL simplifique cenários multithread, recomendamos que você tenha uma compreensão básica dos conceitos de threads, por exemplo, bloqueios, deadlocks e condições de corrida para que possa usar a TPL efetivamente.

Título Descrição
Paralelismo de dados Descreve como criar for paralelo e loops foreach (For e For Each no Visual Basic).
Programação assíncrona baseada em tarefa Descreve como criar e executar tarefas implicitamente usando Parallel.Invoke ou explicitamente ao usar objetos Task diretamente.
Fluxo de dados Descreve como usar os componentes de fluxo de dados na Biblioteca de Fluxo de Dados TPL para lidar com várias operações. Essas operações devem se comunicar entre si e processar dados à medida que ficam disponíveis.
Armadilhas em potencial em dados e paralelismo da tarefa Descreve algumas armadilhas comuns e como evitá-las.
LINQ paralelo (PLINQ) Descreve como obter o paralelismo de dados com consultas LINQ.
Programação paralela Nó de nível superior para programação paralela .NET.

Confira também