Библиотека параллельных задач
Библиотека параллельных задач (TPL) представляет собой набор открытых типов и API-интерфейсов в пространствах имен System.Threading и System.Threading.Tasks в .NET Framework 4. Библиотека параллельных задач предназначена для повышения производительности разработчиков за счет упрощения процесса добавления параллелизма в приложения. Она динамически масштабирует степень параллелизма для наиболее эффективного использования всех доступных процессоров. Кроме того, в библиотеке параллельных задач осуществляется секционирование работы, планирование потоков в пуле ThreadPool, поддержка отмены, управление состоянием и выполняются другие низкоуровневые задачи. Используя библиотеку параллельных задач, можно повысить производительность кода, сосредоточившись на работе, для которой предназначена программа.
Начиная с .NET Framework 4 библиотека параллельных задач является предпочтительным способом создания многопоточного и параллельного кода. Однако не всякий код подходит для параллелизации; например, если цикл за каждую итерацию выполняет небольшой объем работ или выполняется для небольшого числа итераций, из-за дополнительной нагрузки, которую параллелизация оказывает на систему, код может выполняться медленнее. Кроме того, параллелизация, как и любой многопоточный код, усложняет выполнение программы. Хотя библиотека параллельных задач упрощает многопоточные сценарии, рекомендуется иметь базовое понимание понятий потоков, например блокировки, взаимоблокировки и состояния гонки, чтобы эффективно использовать библиотеку параллельных задач. Дополнительные сведения об основных принципах параллельных вычислений см. в разделе Parallel Computer Developer Center на веб-сайте MSDN.
Связанные разделы
Название |
Описание |
Описание создания параллельных циклов for и foreach (For и For Each в Visual Basic). |
|
Описание создания и запуска задач неявно с использованием перегрузки Parallel.Invoke или явно с использованием объектов Task напрямую. |
|
Описание использования библиотеки параллельных задач с другими асинхронными шаблонами в .NET. |
|
Потенциальные ошибки, связанные с параллелизмом данных и задач |
Описание некоторых распространенных ошибок и способов их избежать. |
Описание способов достижения параллелизма данных с помощью запросов LINQ. |
|
Узел верхнего уровня для параллельного программирования в .NET. |