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

Библиотека параллельных задач (TPL) представляет собой набор открытых типов и API-интерфейсов в пространствах имен System.Threading и System.Threading.Tasks. Цель TPL — повышение производительности труда разработчиков за счет упрощения процедуры добавления параллелизма в приложения. TPL динамически масштабирует степень параллелизма, чтобы использовать все доступные процессоры наиболее эффективно. Кроме того, в библиотеке параллельных задач осуществляется секционирование работы, планирование потоков в пуле ThreadPool, поддержка отмены, управление состоянием и выполняются другие низкоуровневые задачи. Используя библиотеку параллельных задач, можно повысить производительность кода, сосредоточившись на работе, для которой предназначена программа.

В платформа .NET Framework 4 TPL — предпочтительный способ написания многопоточного и параллельного кода. Однако не всякий код подходит для параллелизации. Например, если цикл за каждую итерацию выполняет небольшой объем работ или выполняется за небольшое число итераций, из-за дополнительной нагрузки, которую параллелизация оказывает на систему, код может выполняться медленнее. Кроме того, параллелизация, как и любой многопоточный код, упрощает выполнение программы. Хотя библиотека параллельных задач упрощает многопоточные сценарии, рекомендуется иметь базовое понимание понятий потоков, например блокировки, взаимоблокировки и состояния гонки, чтобы эффективно использовать библиотеку параллельных задач.

Заголовок Description
Параллелизм данных Описание создания параллельных циклов for и foreach (For и For Each в Visual Basic).
Асинхронное программирование на основе задач Описание создания и запуска задач неявно с использованием перегрузки Parallel.Invoke или явно с использованием объектов Task напрямую.
Поток данных Описывает использование компонентов потока данных в библиотеке потоков данных TPL для обработки нескольких операций. Эти операции должны взаимодействовать друг с другом и обрабатывать данные по мере его доступности.
Возможные ошибки, связанные с параллелизмом данных и задач Описание некоторых распространенных ошибок и способов их избежать.
Parallel LINQ (PLINQ) Описание способов достижения параллелизма данных с помощью запросов LINQ.
Параллельное программирование Узел верхнего уровня для параллельного программирования .NET.

См. также