タスク並列ライブラリ (TPL)Task Parallel Library (TPL)

タスク並列ライブラリ (TPL: Task Parallel Library) は、System.Threading 名前空間および System.Threading.Tasks 名前空間におけるパブリック型と API のセットです。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. さらに TPL は、作業のパーティション分割、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. TPL を使用すると、コードのパフォーマンスが大幅に向上し、目的を達成するためのプログラミング作業に集中できます。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 以降では、マルチスレッド コードおよび並列コードを作成する際に TPL を使用することをお勧めします。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. TPL はマルチスレッドのシナリオを簡略化しますが、たとえばロック、デッドロックおよび競合状態のスレッド処理の基本的な概念を理解し、TPL を効率的に使用することをお勧めします。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.

TitleTitle 説明Description
データの並列化Data Parallelism 並列の for ループおよび foreach ループ (Visual Basic では For および For Each) を作成する方法について説明します。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.
TPL と他の非同期パターンの使用Using TPL with Other Asynchronous Patterns TPL と他の非同期パターンを .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