Process.ProcessorAffinity プロパティ


このプロセスでのスレッドの実行をスケジュールできるプロセッサを取得または設定します。Gets or sets the processors on which the threads in this process can be scheduled to run.

 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



関連付けられたプロセスのスレッドを実行できるプロセッサを示すビットマスク。A bitmask representing the processors that the threads in the associated process can run on. 既定値は、コンピューターのプロセッサ数によって異なります。The default depends on the number of processors on the computer. 既定値は 2 n -1 です。ここで、n はプロセッサ数です。The default value is 2 n -1, where n is the number of processors.


関連付けられているプロセスのリソースから ProcessorAffinity 情報を設定できないか、取得できませんでした。ProcessorAffinity information could not be set or retrieved from the associated process resource.

または-or- プロセス識別子またはプロセス ハンドルが 0 です。The process identifier or process handle is zero. (プロセスは開始されていません。)(The process has not been started.)

リモート コンピューターで実行されているプロセスの ProcessorAffinity プロパティにアクセスしようとしています。You are attempting to access the ProcessorAffinity property for a process that is running on a remote computer. このプロパティはローカル コンピューターで実行中のプロセスに対してのみ使用可能です。This property is available only for processes that are running on the local computer.

プロセス Id が使用できませんでした。The process Id was not available.

または-or- プロセスが終了しています。The process has exited.


このプロパティによって返される値は、プロセスの最後に更新された関係を表します。The value returned by this property represents the most recently refreshed affinity of the process. 最新のアフィニティを取得するには、最初にメソッドを呼び出す必要があり Refresh() ます。To get the most up to date affinity, you need to call Refresh() method first.

Windows 2000 以降では、プロセス内のスレッドはプロセッサからプロセッサに移行でき、各移行でプロセッサキャッシュが再読み込みされます。In Windows 2000 and later, a thread in a process can migrate from processor to processor, with each migration reloading the processor cache. システム負荷が高い場合、特定のスレッドを実行するプロセッサを指定すると、プロセッサキャッシュを再読み込みする回数を減らすことでパフォーマンスを向上させることができます。Under heavy system loads, specifying which processor should run a specific thread can improve performance by reducing the number of times the processor cache is reloaded. プロセッサとスレッド間の関連付けは、プロセッサ関係と呼ばれます。The association between a processor and a thread is called the processor affinity.

各プロセッサは、1つのビットとして表現されます。Each processor is represented as a bit. ビット0はプロセッサ1、ビット1はプロセッサ2、などのようになります。Bit 0 is processor one, bit 1 is processor two, and so forth. ビットを値1に設定すると、対応するプロセッサがスレッド割り当てに対して選択されます。If you set a bit to the value 1, the corresponding processor is selected for thread assignment. 値を0に設定すると、 ProcessorAffinity オペレーティングシステムのスケジュールアルゴリズムによってスレッドのアフィニティが設定されます。When you set the ProcessorAffinity value to zero, the operating system's scheduling algorithms set the thread's affinity. ProcessorAffinity値が0以外の値に設定されている場合、値は、選択対象のプロセッサを指定するビットマスクとして解釈されます。When the ProcessorAffinity value is set to any nonzero value, the value is interpreted as a bitmask that specifies those processors eligible for selection.

次の表は、 ProcessorAffinity 8 プロセッサシステムの値の選択を示しています。The following table shows a selection of ProcessorAffinity values for an eight-processor system.

ビットマスクBitmask バイナリ値Binary value 対象のプロセッサEligible processors
0x00010x0001 00000000 0000000100000000 00000001 11
0x00030x0003 00000000 0000001100000000 00000011 1 と 21 and 2
0x00070x0007 00000000 0000011100000000 00000111 1、2 および 31, 2 and 3
0x00090x0009 00000000 0000100100000000 00001001 1および41 and 4
0x007F0x007F 00000000 0111111100000000 01111111 1、2、3、4、5、6、71, 2, 3, 4, 5, 6 and 7