Biblioteca paralela de tarefas (TPL)

A TPL (Task Parallel Library) é um conjunto de tipos públicos e APIs nos System.Threading namespaces e System.Threading.Tasks . O objetivo do TPL é tornar os desenvolvedores mais produtivos, simplificando o processo de adicionar paralelismo e simultaneidade aos aplicativos. O TPL dimensiona dinamicamente o grau de simultaneidade para usar todos os processadores disponíveis de forma mais eficiente. Além disso, o TPL lida com o particionamento do trabalho, o agendamento de threads no ThreadPool, suporte de cancelamento, gerenciamento de estado e outros detalhes de baixo nível. Usando TPL, você pode maximizar o desempenho do seu código enquanto se concentra no trabalho que seu programa foi projetado para realizar.

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

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

Consulte também