Process.ProcessorAffinity プロパティ

定義

このプロセスのスレッドを実行するようにスケジュールできるプロセッサを取得または設定します。

public:
 property IntPtr ProcessorAffinity { IntPtr get(); void set(IntPtr value); };
public IntPtr ProcessorAffinity { get; set; }
member this.ProcessorAffinity : nativeint with get, set
Public Property ProcessorAffinity As IntPtr

プロパティ値

IntPtr

nativeint

関連付けられたプロセス内のスレッドが実行できるプロセッサを表すビットマスク。 既定値は、コンピューター上のプロセッサの数によって異なります。 既定値は 2 n -1 で、n はプロセッサの数です。

例外

ProcessorAffinity 関連付けられているプロセス リソースから情報を設定または取得できませんでした。

-または-

プロセス識別子またはプロセス ハンドルは 0 です。 (プロセスは開始されていません。)

リモート コンピューターで実行されているプロセスの ProcessorAffinity プロパティにアクセスしようとしています。 このプロパティは、ローカル コンピューターで実行されているプロセスでのみ使用できます。

プロセス Id を使用できませんでした。

-または-

プロセスが終了しました。

注釈

このプロパティによって返される値は、プロセスの最近更新されたアフィニティを表します。 最新のアフィニティを取得するには、最初にメソッド Refresh() 呼び出す必要があります。

Windows 2000 以降では、プロセス内のスレッドをプロセッサからプロセッサに移行し、移行ごとにプロセッサ キャッシュを再読み込みできます。 システムの負荷が高い場合、特定のスレッドを実行するプロセッサを指定すると、プロセッサ キャッシュを再読み込みする回数を減らすことでパフォーマンスを向上させることができます。 プロセッサとスレッドの間の関連付けは、プロセッサ アフィニティと呼ばれます。

各プロセッサはビットとして表されます。 ビット 0 はプロセッサ 1、ビット 1 はプロセッサ 2 などです。 値 1 にビットを設定すると、スレッド割り当てに対応するプロセッサが選択されます。 ProcessorAffinity値を 0 に設定すると、オペレーティング システムのスケジューリング アルゴリズムによってスレッドのアフィニティが設定されます。 ProcessorAffinity値が 0 以外の値に設定されている場合、その値は、選択対象のプロセッサを指定するビットマスクとして解釈されます。

次の表は、8 プロセッサ システムの ProcessorAffinity 値の選択を示しています。

Bitmask バイナリ値 対象プロセッサ
0x0001 00000000 00000001 1
0x0003 00000000 00000011 1 と 2
0x0007 00000000 00000111 1、2、3
0x0009 00000000 00001001 1 と 4
0x007F 00000000 01111111 1、2、3、4、5、6、7

適用対象