Biblioteca de tarefas paralelas (TPL)Task Parallel Library (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.The Task Parallel Library (TPL) is a set of public types and APIs in the System.Threading and System.Threading.Tasks namespaces. O objetivo da TPL é tornar os desenvolvedores mais produtivos ao simplificar o processo de adicionar paralelismo e concorrência em aplicativos.The purpose of the TPL is to make developers more productive by simplifying the process of adding parallelism and concurrency to applications. A TPL dimensiona o grau de simultaneidade dinamicamente para usar todos os processadores disponíveis de forma mais eficiente.The TPL scales the degree of concurrency dynamically to most efficiently use all the processors that are available. 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.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. 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.By using TPL, you can maximize the performance of your code while focusing on the work that your program is designed to accomplish.

Do .NET Framework 4 em diante, a TPL é a maneira preferencial para escrever códigos multi-threaded e paralelos.Starting with the .NET Framework 4, the TPL is the preferred way to write multithreaded and parallel code. No entanto, nem todos os códigos são apropriados 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.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. Além disso, a paralelização, assim como qualquer código multithread, acrescenta complexidade à execução do seu programa.Furthermore, parallelization like any multithreaded code adds complexity to your program execution. 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.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.

TítuloTitle DescriçãoDescription
Paralelismo de dadosData Parallelism Descreve como criar for paralelo e loops foreach (For e For Each no Visual Basic).Describes how to create parallel for and foreach loops (For and For Each in Visual Basic).
Programação assíncrona baseada em tarefaTask-based Asynchronous Programming Descreve como criar e executar tarefas implicitamente usando Parallel.Invoke ou explicitamente ao usar objetos Task diretamente.Describes how to create and run tasks implicitly by using Parallel.Invoke or explicitly by using Task objects directly.
Fluxo de dadosDataflow Descreve como usar os componentes do fluxo de dados na biblioteca de fluxo de dados de TPL para manipular várias operações que devem se comunicar umas com as outras ou processar dados à medida que são disponibilizados.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.
Usando TPL com outros padrões assíncronosUsing TPL with Other Asynchronous Patterns Descreve como usar a TPL com outros padrões assíncronos em .NETDescribes how to use TPL with other asynchronous patterns in .NET
Possíveis armadilhas em paralelismo de tarefa e dadosPotential Pitfalls in Data and Task Parallelism Descreve algumas armadilhas comuns e como evitá-las.Describes some common pitfalls and how to avoid them.
PLINQ (LINQ paralelo)Parallel LINQ (PLINQ) Descreve como obter o paralelismo de dados com consultas LINQ.Describes how to achieve data parallelism with LINQ queries.
Programação paralelaParallel Programming Nó de nível superior para a programação paralela do .NET.Top level node for .NET parallel programming.

Consulte tambémSee also