Process.ProcessorAffinity 속성

정의

이 프로세스의 스레드를 실행하도록 예약할 수 있는 프로세서를 가져오거나 설정합니다.

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

속성 값

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

적용 대상