Process.ProcessorAffinity プロパティ
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
このプロセスのスレッドを実行するようにスケジュールできるプロセッサを取得または設定します。
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
プロパティ値
nativeint
関連付けられたプロセス内のスレッドが実行できるプロセッサを表すビットマスク。 既定値は、コンピューター上のプロセッサの数によって異なります。 既定値は 2 n -1 で、n はプロセッサの数です。
例外
ProcessorAffinity 関連付けられているプロセス リソースから情報を設定または取得できませんでした。
-または-
プロセス識別子またはプロセス ハンドルは 0 です。 (プロセスは開始されていません。)
リモート コンピューターで実行されているプロセスの ProcessorAffinity プロパティにアクセスしようとしています。 このプロパティは、ローカル コンピューターで実行されているプロセスでのみ使用できます。
注釈
このプロパティによって返される値は、プロセスの最近更新されたアフィニティを表します。 最新のアフィニティを取得するには、最初にメソッド 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 |