Biblioteca de procesamiento paralelo basado en tareas (TPL)Task Parallel Library (TPL)

La biblioteca TPL (Task Parallel Library, biblioteca de procesamiento paralelo basado en tareas) es un conjunto de API y tipos públicos de los espacios de nombres System.Threading y System.Threading.Tasks.The Task Parallel Library (TPL) is a set of public types and APIs in the System.Threading and System.Threading.Tasks namespaces. El propósito de la TPL es aumentar la productividad de los desarrolladores simplificando el proceso de agregar paralelismo y simultaneidad a las aplicaciones.The purpose of the TPL is to make developers more productive by simplifying the process of adding parallelism and concurrency to applications. La TPL escala el grado de simultaneidad de manera dinámica para usar con mayor eficacia todos los procesadores disponibles.The TPL scales the degree of concurrency dynamically to most efficiently use all the processors that are available. Además, la TPL se encarga de la división del trabajo, la programación de los subprocesos en ThreadPool, la compatibilidad con la cancelación, la administración de los estados y otros detalles de bajo nivel.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. Al utilizar la TPL, el usuario puede optimizar el rendimiento del código mientras se centra en el trabajo para el que el programa está diseñado.By using TPL, you can maximize the performance of your code while focusing on the work that your program is designed to accomplish.

A partir de .NET Framework 4, la TPL es el modo preferido de escribir código paralelo y multiproceso.Starting with the .NET Framework 4, the TPL is the preferred way to write multithreaded and parallel code. Sin embargo, no todo el código se presta para la paralelización; por ejemplo, si un bucle realiza solo una cantidad reducida de trabajo en cada iteración o no se ejecuta para un gran número de iteraciones, la sobrecarga de la paralelización puede dar lugar a una ejecución más lenta del código.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. Además, al igual que cualquier código multiproceso, la paralelización hace que la ejecución del programa sea más compleja.Furthermore, parallelization like any multithreaded code adds complexity to your program execution. Aunque la TPL simplifica los escenarios de multithreading, recomendamos tener conocimientos básicos sobre conceptos de subprocesamiento, por ejemplo, bloqueos, interbloqueos y condiciones de carrera, para usar la TPL eficazmente.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.

TitleTitle DESCRIPCIÓNDescription
Data Parallelism (Paralelismo de datos)Data Parallelism Describe cómo crear bucles for y foreach paralelos (For y For Each en Visual Basic).Describes how to create parallel for and foreach loops (For and For Each in Visual Basic).
Programación asincrónica basada en tareasTask-based Asynchronous Programming Describe cómo crear y ejecutar tareas implícitamente mediante Parallel.Invoke o explícitamente usando objetos Task directamente.Describes how to create and run tasks implicitly by using Parallel.Invoke or explicitly by using Task objects directly.
Flujo de datosDataflow Describe cómo utilizar los componentes de flujo de datos de la biblioteca de TPL Dataflow para controlar varias operaciones que deban comunicarse entre sí o procesar datos a medida que estén disponibles.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.
Usar TPL con otros patrones asincrónicosUsing TPL with Other Asynchronous Patterns Describe cómo utilizar la TPL con otros modelos asincrónicos de .NET.Describes how to use TPL with other asynchronous patterns in .NET
Problemas potenciales en el paralelismo de datos y tareasPotential Pitfalls in Data and Task Parallelism Describe algunos problemas comunes y cómo evitarlos.Describes some common pitfalls and how to avoid them.
Parallel LINQ (PLINQ)Parallel LINQ (PLINQ) Describe cómo lograr el paralelismo de datos con consultas LINQ.Describes how to achieve data parallelism with LINQ queries.
Programación en paraleloParallel Programming Nodo de nivel superior de la programación en paralelo de .NET.Top level node for .NET parallel programming.

Vea tambiénSee also