タスク並列ライブラリ (TPL) は、 System.Threading および System.Threading.Tasks 名前空間のパブリック型と API のセットです。 TPL の目的は、アプリケーションに並列処理とコンカレンシーを追加するプロセスを簡略化することで、開発者の生産性を高めるものです。 TPL は、使用可能なすべてのプロセッサを最も効率的に使用するようにコンカレンシーの程度を動的にスケーリングします。 さらに、TPL は、作業のパーティション分割、 ThreadPoolでのスレッドのスケジュール設定、取り消しのサポート、状態管理、およびその他の低レベルの詳細を処理します。 TPL を使用すると、プログラムが実現するように設計されている作業に集中しながら、コードのパフォーマンスを最大化できます。
.NET Framework 4 では、マルチスレッドコードと並列コードを記述する場合、TPL が推奨される方法です。 ただし、すべてのコードが並列化に適しているわけではありません。 たとえば、ループが各イテレーションに対して少量の作業のみを実行する場合、または多数のイテレーションで実行されない場合、並列化のオーバーヘッドにより、コードの実行速度が低下する可能性があります。 さらに、マルチスレッド コードと同様に、並列化によってプログラムの実行が複雑になります。 TPL はマルチスレッド シナリオを簡略化しますが、TPL を効果的に使用できるように、スレッドの概念 (ロック、デッドロック、競合状態など) を基本的に理解することをお勧めします。
関連資料
タイトル | 説明 |
---|---|
データの並列化 | 並列 for ループと foreach ループ (Visual Basic のFor と For Each ) を作成する方法について説明します。 |
タスク ベースの非同期プログラミング | Parallel.Invokeを使用して暗黙的にタスクを作成して実行する方法、またはTask オブジェクトを直接使用して明示的にタスクを実行する方法について説明します。 |
データフロー | TPL データフロー ライブラリのデータフロー コンポーネントを使用して複数の操作を処理する方法について説明します。 これらの操作は、相互に通信し、使用可能になったときにデータを処理する必要があります。 |
データとタスクの並列処理における潜在的な落とし穴 | 一般的な落とし穴とその回避方法について説明します。 |
Parallel LINQ (PLINQ) | LINQ クエリを使用してデータの並列処理を実現する方法について説明します。 |
並列プログラミング | .NET 並列プログラミングの最上位ノード。 |
こちらも参照ください
- .NET Core & .NET Standard を使用した並列プログラミングの サンプル
.NET