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 정보를 연결된 프로세스 리소스에서 설정하거나 검색할 수 없습니다.

또는

프로세스 식별자 또는 프로세스 핸들이 0입니다. (프로세스가 시작되지 않았습니다.)

원격 컴퓨터에서 실행 중인 프로세스의 ProcessorAffinity 속성에 액세스하려고 합니다. 이 속성은 로컬 컴퓨터에서 실행되는 프로세스에만 사용할 수 있습니다.

Id 프로세스를 사용할 수 없습니다.

또는

프로세스가 종료되었습니다.

설명

이 속성에서 반환되는 값은 프로세스의 가장 최근에 새로 고친 선호도를 나타냅니다. 최신 선호도를 최대한 활용하려면 먼저 메서드를 호출 Refresh() 해야 합니다.

Windows 2000 이상에서는 프로세스의 스레드가 프로세서에서 프로세서로 마이그레이션할 수 있으며 각 마이그레이션은 프로세서 캐시를 다시 로드합니다. 시스템 부하가 많은 상태에서 특정 스레드를 실행해야 하는 프로세서를 지정하면 프로세서 캐시가 다시 로드되는 횟수를 줄여 성능을 향상시킬 수 있습니다. 프로세서와 스레드 간의 연결을 프로세서 선호도라고 합니다.

각 프로세서는 비트로 표시됩니다. 비트 0은 프로세서 1, 비트 1은 프로세서 2 등입니다. 값을 1로 조금 설정하면 스레드 할당을 위해 해당 프로세서가 선택됩니다. 값을 0으로 설정 ProcessorAffinity 하면 운영 체제의 예약 알고리즘이 스레드의 선호도를 설정합니다. 값이 ProcessorAffinity 0이 아닌 값으로 설정되면 이 값은 선택 가능한 프로세서를 지정하는 비트 마스크로 해석됩니다.

다음 표에서는 8개 프로세서 시스템에 대한 값의 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

적용 대상