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 屬性。 此特性僅適用於在本地電腦上執行的程序。
備註
此屬性回傳的值代表該過程最近更新的親和力。 要獲得最新的會合,你需要先叫 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 |