Process.ProcessorAffinity 属性
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
获取或设置一些处理器,此进程中的线程可以按计划在这些处理器上运行。
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 属性。 此属性仅可用于本地计算机上运行的进程。
注解
此属性返回的值表示进程最近刷新的相关性。 若要获取最新的相关性,需要首先调用 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 |