Process.ProcessorAffinity プロパティ

定義

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

public:
 property IntPtr ProcessorAffinity { IntPtr get(); void set(IntPtr value); };
public IntPtr ProcessorAffinity { get; set; }
[System.Runtime.Versioning.SupportedOSPlatform("windows")]
[System.Runtime.Versioning.SupportedOSPlatform("linux")]
public IntPtr ProcessorAffinity { get; set; }
member this.ProcessorAffinity : nativeint with get, set
[<System.Runtime.Versioning.SupportedOSPlatform("windows")>]
[<System.Runtime.Versioning.SupportedOSPlatform("linux")>]
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 に設定すると、オペレーティング システムのスケジュール アルゴリズムによってスレッドのアフィニティが設定されます。 値が 0 以外の ProcessorAffinity 値に設定されている場合、値は、選択の対象となるプロセッサを指定するビットマスクとして解釈されます。

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

ビットマスク バイナリ値 対象となるプロセッサ
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

適用対象