Share via


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_keyinvalid_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 クラス
タスク スケジューラ