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 資訊無法設定或從相關聯的處理序資源擷取。

-或-

處理序識別碼或處理序控制代碼為零。 (尚未啟動處理序)。

您正在嘗試存取於遠端電腦上執行之處理序的 ProcessorAffinity 屬性。 這個屬性僅供在本機電腦執行的處理序使用。

處理序 Id 無法使用。

-或-

處理序已經結束。

備註

這個屬性所傳回的值代表進程最近重新整理的親和性。 若要取得最新的親和性,您必須先呼叫 Refresh() 方法。

在 Windows 2000 和更新版本中,進程中的執行緒可以從處理器移轉至處理器,每個移轉都會重載處理器快取。 在大量系統負載下,指定哪個處理器應該執行特定執行緒,藉由減少重載處理器快取的次數來改善效能。 處理器與執行緒之間的關聯稱為處理器親和性。

每個處理器都會以位表示。 位 0 是處理器 1,位 1 是處理器 2,依此類推。 如果您將位設定為值 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

適用於