この記事は機械翻訳されています。英語版の記事を表示するには、[英語] のチェック ボックスをオンにしてください。また、テキストにマウス ポインターを合わせると、ポップアップ ウィンドウに英語のテキストを表示することもできます。
翻訳
英語

ParallelOptions.MaxDegreeOfParallelism プロパティ

 

公開日: 2016年11月

これによって有効になっている同時実行タスクの最大数を取得または ParallelOptions インスタンス。

名前空間:   System.Threading.Tasks
アセンブリ:  mscorlib (mscorlib.dll 内)

public int MaxDegreeOfParallelism { get; set; }

プロパティ値

Type: System.Int32

並列処理の最大限度を表す整数です。

Exception Condition
ArgumentOutOfRangeException

プロパティは、0 または-1 未満の値に設定されます。

MaxDegreeOfParallelism プロパティ同時操作の実行の数に影響を与えます Parallel これを渡されるメソッド呼び出し ParallelOptions インスタンス。 正のプロパティの値は、値に設定する同時操作の数を制限します。 -1 の場合、同時に実行している操作の数に制限はありません。

既定では、 ForForEach が、多くのスレッド、基になるスケジューラでは、変更することは利用 MaxDegreeOfParallelism のみの既定の制限数の同時実行タスクが使用されます。

一般に、この設定を変更する必要はありません。 ただし、このような高度な使用シナリオで明示的に設定することもできます。

  • わかっている場合を使用している特定のアルゴリズムは、コア数を超えた拡張不十分です。 さらにコアのサイクルを節約するためにプロパティを設定することができます。

  • 複数のアルゴリズムを同時に実行しているし、手動で定義する各アルゴリズムが利用できるシステムの量。 設定することができます、 MaxDegreeOfParallelism ごとの値。

  • スレッド プールのヒューリスティックが適切に使用するスレッド数を特定できないとスレッドが多すぎるを挿入することになります。 たとえば、実行時間の長いループ本体のイテレーションでは、スレッド プールが妥当な進行状況、ライブロック、またはデッドロックの相違は区別できない可能性があり、パフォーマンスを向上させるために追加されたスレッドを解放できないことができない可能性があります。 この場合、スレッドの適切な数よりも多く使用しないようにすることを確認するプロパティを設定できます。

ユニバーサル Windows プラットフォーム
8 以降で使用可能
.NET Framework
4.0 以降で使用可能
ポータブル クラス ライブラリ
サポート対象: 移植可能 .NET プラットフォーム
Windows Phone
8.1 以降で使用可能
トップに戻る
表示: