任务并行库 (TPL)

任务并行库(TPL)是一组在 System.ThreadingSystem.Threading.Tasks 命名空间中的公共类型和 API。 TPL 的目的是通过简化向应用程序添加并行度和并发的过程,提高开发人员的工作效率。 TPL 动态缩放并发程度,以最高效地使用所有可用的处理器。 此外,TPL 还负责处理工作分区、ThreadPool 上的线程调度、取消支持、状态管理以及其他底层细节。 通过使用 TPL,你可以最大程度地提高代码的性能,同时专注于程序旨在完成的工作。

在 .NET Framework 4 中,TPL 是编写多线程和并行代码的首选方法。 但是,并非所有代码都适合并行化。 例如,如果循环对每次迭代只执行少量工作,或者它不运行多次迭代,则并行化开销可能会导致代码运行速度更慢。 此外,并行化(与任何多线程代码一样)会增加程序执行的复杂性。 尽管 TPL 简化了多线程方案,但我们建议你基本了解线程处理概念,例如锁、死锁和争用条件,以便可以有效地使用 TPL。

标题 DESCRIPTION
数据并行度 介绍如何创建并行 forforeach 循环(For 以及 For Each Visual Basic 中)。
基于任务的异步编程 描述如何通过使用 Parallel.Invoke 隐式创建和运行任务,或通过直接使用 Task 对象显式创建和运行任务。
数据流 介绍如何使用 TPL 数据流库中的数据流组件来处理多个作。 这些操作必须相互通信,并在数据可用时处理数据。
数据和任务并行度的潜在缺陷 描述一些常见的陷阱以及如何避免这些陷阱。
并行 LINQ (PLINQ) 介绍如何使用 LINQ 查询实现数据并行。
并行编程 .NET 并行编程的顶级节点。

另请参阅