Scheduler」の日本語参考訳です。アルゴリズム・テンプレートとタスクグループを動かすエンジンであるタスク・スケジューラーを提供します。呼び出すことも可能です。タスク・スケジューラーは多くの処理を行うため、タスクの使用は多くの場合、スレッドの使用よりも単純で効率的です。タスクは計算の論理ユニットです。スケジューラーは、物理スレッドにタスクをマップします。マッピングはノンプリエンプティブです。リターンするまでそのスレッドにバインドされます。その間、スレッドは以下に説明するように、子タスクまたは入れ子になった並列構造の完了を待機する場合にのみ、他のタスクを処理します。待機中は、このスレッドまたは他のスレッドによって生成された関連性のないタスクを含む、利用可能なタスクを実行できます。タスク・スケジューラーは、計算主体のワークを並列化するように設計されています。タスク・オブジェクトはプリエンプティブにスケジュールされないため、スレッドがほかのタスクを処理できない間、スレッドを長い間ブロックする呼び出しを行ってはなりません。注意スケジューラーは利用可能なワーカースレッドに収まるように実際の並列処理を調整するため、「潜在的に」並列可能なタスクが「実際に」並列実行される保証はありません。単一のワーカースレッドが提供された場合、スケジューラーは並列処理を行えません。生産タスクの実行中に消費タスクがこの作業を行う保証がないため、生産タスクと消費タスク間でタスクを使用することは安全ではありません。つの基本パターンがサポートされています。タスクを構築する継続渡しです。親は子タスクを生成して、子が完了するときに実行する継続タスクを指定します。継続は親の先祖を継承します。その後、親タスクは終了します。子をブロックしません。終了した後、継続タスクが実行を開始します。次の図は、一連のステップを示しています。各ステップの実行タスクは色付きで表示されています。継続渡しスタイル明示的な継続渡しは、タスクからスレッドのスタックを分離するので効率的です。プログラムはより難しくなります。このパターンはパフォーマンスの点では効率が落ちますが、プログラムはより簡単です。このパターンでは、下記の図で示されているように、親タスクはその子が完了するまでブロックします。ブロックスタイル便利さには代償がつきものです。ブロックされた親タスクがスタックに残っている間、スレッドは別のタスクをスチールして実行できます。継続してスチールとブロックを行うと、スタックが無制限に伸長する可能性があります。この問題を避けるには、スケジューラーでブロックされたスレッドがスチールを停止するように制限します。この制限により、利用可能な並列処理が制約されパフォーマンスに影響する場合があります。構造は、再帰的な並列処理には継続パスを使用し並列構造全体の完了にはブロッキングを使用します。(英語)コンパイラーの最適化に関する詳細は、最適化に関する注意事項を参照してください。Isolation」の日本語参考訳です。support」の日本語参考訳です。Blocks」の日本語参考訳です。サイトはエクセルソフト株式会社が運営しています。社名、製品名などは一般に各社の表示、商標または登録商標です。