SchedulerPolicy クラス
SchedulerPolicy
クラスには、ポリシー要素ごとに 1 つずつ、スケジューラ インスタンスの動作を制御するキーと値のペアのセットが含まれています。
構文
class SchedulerPolicy;
メンバー
パブリック コンストラクター
名前 | 説明 |
---|---|
SchedulerPolicy | 過負荷です。 新しいスケジューラ ポリシーを構築し、同時実行ランタイム スケジューラおよび Azure Resource Manager でサポートされている policy keys の値を設定します。 |
~SchedulerPolicy デストラクター | スケジューラ ポリシーを破棄します。 |
パブリック メソッド
名前 | 説明 |
---|---|
GetPolicyValue | key パラメーターとして指定されるポリシー キーの値を取得します。 |
SetConcurrencyLimits | MinConcurrency オブジェクトに対して、MaxConcurrency ポリシーおよび SchedulerPolicy ポリシーを同時に設定します。 |
SetPolicyValue | key パラメーターとして指定されるポリシー キーの値を設定し、古い値を返します。 |
パブリック演算子
名前 | 説明 |
---|---|
operator= | 別のスケジューラ ポリシーからスケジューラ ポリシーを割り当てます。 |
解説
SchedulerPolicy
クラスを使用して制御できるポリシーの詳細は、PolicyElementKey を参照してください。
継承階層
SchedulerPolicy
要件
ヘッダー: concrt.h、concrtrm.h
名前空間: concurrency
GetPolicyValue
key
パラメーターとして指定されるポリシー キーの値を取得します。
unsigned int GetPolicyValue(PolicyElementKey key) const;
パラメーター
key
値を取得するポリシー キー。
戻り値
key
パラメーターで指定されたキーがサポートされている場合、キーのポリシー値は unsigned int
にキャストされます。
解説
メソッドは、無効なポリシー キーに対して invalid_scheduler_policy_key をスローします。
operator=
別のスケジューラ ポリシーからスケジューラ ポリシーを割り当てます。
SchedulerPolicy& operator= (const SchedulerPolicy& _RhsPolicy);
パラメーター
_RhsPolicy
このポリシーに割り当てるポリシー。
戻り値
スケジューラ ポリシーへの参照。
解説
通常、新しいスケジューラ ポリシーを定義する最も簡単な方法は、既存のポリシーをコピーし、それを SetPolicyValue
メソッドまたは SetConcurrencyLimits
メソッドを使用して変更することです。
SchedulerPolicy
新しいスケジューラ ポリシーを構築し、同時実行ランタイム スケジューラおよび Azure Resource Manager でサポートされている policy keys の値を設定します。
SchedulerPolicy();
SchedulerPolicy(
size_t _PolicyKeyCount,
...);
SchedulerPolicy(
const SchedulerPolicy& _SrcPolicy);
パラメーター
_PolicyKeyCount
_PolicyKeyCount
パラメーターの後に続くキーと値のペアの数。
_SrcPolicy
コピー元のポリシー。
解説
最初のコンストラクターでは、すべてのポリシーが既定値に初期化される新しいスケジューラ ポリシーを作成します。
2 番目のコンストラクターでは、名前付きパラメーター スタイルの初期化を使用する新しいスケジューラ ポリシーを作成します。 _PolicyKeyCount
パラメーターの後の値は、キーと値のペアとして渡されます。 このコンストラクターで指定されていないポリシー キーには既定値が設定されます。 このコンストラクターによって、invalid_scheduler_policy_key、invalid_scheduler_policy_value、または invalid_scheduler_policy_thread_specification 例外がスローされる可能性があります。
3 番目のコンストラクターはコピー コンストラクターです。 通常、新しいスケジューラ ポリシーを定義する最も簡単な方法は、既存のポリシーをコピーし、それを SetPolicyValue
メソッドまたは SetConcurrencyLimits
メソッドを使用して変更することです。
~SchedulerPolicy
スケジューラ ポリシーを破棄します。
~SchedulerPolicy();
SetConcurrencyLimits
MinConcurrency
オブジェクトに対して、MaxConcurrency
ポリシーおよび SchedulerPolicy
ポリシーを同時に設定します。
void SetConcurrencyLimits(
unsigned int _MinConcurrency,
unsigned int _MaxConcurrency = MaxExecutionResources);
パラメーター
_MinConcurrency
MinConcurrency
ポリシー キーの値。
_MaxConcurrency
MaxConcurrency
ポリシー キーの値。
解説
このメソッドは、invalid_scheduler_policy_thread_specification で指定された値が MinConcurrency
ポリシーで指定された値より大きい場合、MaxConcurrency
ポリシーをスローします。
このメソッドは、他の無効な値に対してinvalid_scheduler_policy_value をスローすることもできます。
SetPolicyValue
key
パラメーターとして指定されるポリシー キーの値を設定し、古い値を返します。
unsigned int SetPolicyValue(
PolicyElementKey key,
unsigned int value);
パラメーター
key
値を設定するポリシー キー。
value
ポリシー キーに設定する値。
戻り値
key
パラメーターで指定されたキーがサポートされている場合、キーの古いポリシー値は unsigned int
にキャストされます。
解説
このメソッドは、無効なポリシー キーまたは SetPolicyValue
メソッドによって値を設定できない任意のポリシー キーに対して invalid_scheduler_policy_key をスローします。
このメソッドは、invalid_scheduler_policy_value を、key
パラメータで指定されたキーでサポートされていない値に対してスローします。
この方法では MinConcurrency
または MaxConcurrency
ポリシーを設定できないので注意してください。 これらの値を設定するには、SetConcurrencyLimits メソッドを使用します。
関連項目
コンカレンシー名前空間
PolicyElementKey
CurrentScheduler クラス
Scheduler クラス
タスク スケジューラ