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 資訊無法從相關的程序資源中設定或取回。

-或-

程序識別碼或程序句柄為零。 (這個程序尚未開始。)

你正在嘗試存取遠端電腦上執行的程序的該 ProcessorAffinity 屬性。 此特性僅適用於在本地電腦上執行的程序。

該程序 Id 無法取得。

-或-

這個過程已經結束。

備註

此屬性回傳的值代表該過程最近更新的親和力。 要獲得最新的會合,你需要先叫 Refresh() 方法。

在 Windows 2000 及更新版本中,程序中的執行緒可以從一個處理器遷移到另一個處理器,每次遷移都會重新載入處理器快取。 在系統負載過重時,指定哪個處理器執行特定執行緒可透過減少快取重載次數來提升效能。 處理器與執行緒之間的關聯稱為處理器親和力。

每個處理器都以位元表示。 位元 0 是處理器一,位元 1 是處理器二,依此類推。 如果你將某位元設為 1,對應的處理器會被選中進行執行緒指派。 當你將值設 ProcessorAffinity 為零時,作業系統的排程演算法會設定執行緒的親和度。 當該 ProcessorAffinity 值被設定為任意非零值時,該值會被解讀為位元遮罩,指定有資格選擇的處理器。

下表展示了八處理器系統的部分 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

適用於