任务并行库 (TPL)

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

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

Title 描述
数据并行 描述如何创建并行的 forforeach 循环(在 Visual Basic 中为 ForFor Each)。
基于任务的异步编程 描述如何通过使用 Parallel.Invoke 隐式创建和运行任务,或通过直接使用 Task 对象显式创建和运行任务。
数据流 描述如何使用 TPL 数据流库中的数据流组件处理多项运算,这些运算必须彼此通信,或在数据可用时处理数据。
数据和任务并行的潜在问题 描述一些常见缺陷以及如何避免它们。
并行 LINQ (PLINQ) 描述如何使用 LINQ 查询实现数据并行化。
并行编程 .NET 并行编程的顶级节点。

请参阅