Библиотека параллельных задач (TPL)Task Parallel Library (TPL)

Библиотека параллельных задач (TPL) представляет собой набор открытых типов и API-интерфейсов в пространствах имен System.Threading и 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. Цель TPL — повышение производительности труда разработчиков за счет упрощения процедуры добавления параллелизма в приложения.The purpose of the TPL is to make developers more productive by simplifying the process of adding parallelism and concurrency to applications. TPL динамически масштабирует степень параллелизма для наиболее эффективного использования всех доступных процессоров.The TPL scales the degree of concurrency dynamically to most efficiently use all the processors that are available. Кроме того, в библиотеке параллельных задач осуществляется секционирование работы, планирование потоков в пуле ThreadPool, поддержка отмены, управление состоянием и выполняются другие низкоуровневые задачи.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. Используя библиотеку параллельных задач, можно повысить производительность кода, сосредоточившись на работе, для которой предназначена программа.By using TPL, you can maximize the performance of your code while focusing on the work that your program is designed to accomplish.

Начиная с .NET Framework 4 библиотека параллельных задач представляет предпочтительный способ создания многопоточного и параллельного кода.Starting with the .NET Framework 4, the TPL is the preferred way to write multithreaded and parallel code. Однако не всякий код подходит для параллелизации; например, если цикл за каждую итерацию выполняет небольшой объем работ или выполняется для небольшого числа итераций, из-за дополнительной нагрузки, которую параллелизация оказывает на систему, код может выполняться медленнее.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. Кроме того, параллелизация, как и любой многопоточный код, усложняет выполнение программы.Furthermore, parallelization like any multithreaded code adds complexity to your program execution. Хотя библиотека параллельных задач упрощает многопоточные сценарии, рекомендуется иметь базовое понимание понятий потоков, например блокировки, взаимоблокировки и состояния гонки, чтобы эффективно использовать библиотеку параллельных задач.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.

ЗаголовокTitle ОписаниеDescription
Параллелизм данныхData Parallelism Описание создания параллельных циклов for и foreach (For и For Each в Visual Basic).Describes how to create parallel for and foreach loops (For and For Each in Visual Basic).
Асинхронное программирование на основе задачTask-based Asynchronous Programming Описание создания и запуска задач неявно с использованием перегрузки Parallel.Invoke или явно с использованием объектов Task напрямую.Describes how to create and run tasks implicitly by using Parallel.Invoke or explicitly by using Task objects directly.
Поток данныхDataflow Описание использования компонентов потоков данных в библиотеке потоков данных TPL для обработки нескольких операций, которые должны взаимодействовать друг с другом, или для обработки данных, когда они становятся доступными.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.
Использование библиотеки параллельных задач с другими асинхронными моделямиUsing TPL with Other Asynchronous Patterns Описание использования библиотеки параллельных задач с другими асинхронными шаблонами в .NET.Describes how to use TPL with other asynchronous patterns in .NET
Возможные ошибки, связанные с параллелизмом данных и задачPotential Pitfalls in Data and Task Parallelism Описание некоторых распространенных ошибок и способов их избежать.Describes some common pitfalls and how to avoid them.
Parallel LINQ (PLINQ)Parallel LINQ (PLINQ) Описание способов достижения параллелизма данных с помощью запросов LINQ.Describes how to achieve data parallelism with LINQ queries.
Параллельное программированиеParallel Programming Узел верхнего уровня для параллельного программирования в .NET.Top level node for .NET parallel programming.

См. такжеSee also