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

适用于