다음을 통해 공유


IVirtualProcessorRoot::Activate 메서드

이 가상 프로세서 루트에서 실행 컨텍스트 인터페이스 pContext와 연결된 스레드 프록시가 실행을 시작하게 됩니다.

virtual void Activate(
   _Inout_ IExecutionContext * pContext
) =0;

매개 변수

  • pContext
    이 가상 프로세서 루트에서 발송될 실행 컨텍스트에 대한 인터페이스입니다.

설명

리소스 관리자는 실행 컨텍스트 인터페이스 pContext와 연결되지 않은 경우 스레드 프록시를 제공합니다.

Activate 메서드는 리소스 관리자가 반환한 새로운 가상 프로세서 루트에서 작업을 실행하거나 비활성화되었거나 또는 비활성화될 가상 프로세서 루트에서 스레드 프록시를 다시 시작하는 데 사용될 수 있습니다.비활성화에 대한 자세한 내용은 IVirtualProcessorRoot::Deactivate를 참조하십시오.비활성화된 가상 프로세서 루트를 다시 시작하면 매개 변수 pContext는 가상 프로세서 루트를 비활성화하는 데 사용되는 매개 변수와 같아야 합니다.

가상 프로세서 루트가 처음으로 활성화된 후에 DeactivateActivate에 대한 후속 호출 쌍은 서로 경쟁할 수 있습니다.이는 Deactivate 호출을 받기 전에 리소스 관리자가 Activate에 대한 호출을 받을 수 있음을 의미합니다.

가상 프로세서 루트를 활성화하면 이 가상 프로세서 루트가 현재 작업 중임을 리소스 관리자에게 알립니다.스케줄러를 이 루트에서 실행할 수 없는 경우 가상 프로세서 루트가 유휴 상태임을 리소스 관리자에게 알리는 Deactivate 메서드를 호출해야 합니다.리소스 관리자는 이 데이터를 사용하여 시스템 로드 균형을 유지합니다.

인수 pContext에 값 NULL이 있는 경우 invalid_argument가 throw됩니다.

인수 pContext가 이 가상 프로세서 루트에 의해 최근 디스패치된 예외 컨텍스트를 나타내지 않은 경우 invalid_operation이 throw됩니다.

가상 프로세서 루트를 활성화하는 동작은 내부 하드웨어 스레드의 구독 수준을 1씩 증가시킵니다.구독 수준에 대한 자세한 내용은 IExecutionResource::CurrentSubscriptionLevel을 참조하십시오.

요구 사항

헤더: concrtrm.h

네임 스페이스: 동시성

참고 항목

참조

IVirtualProcessorRoot 구조체

IVirtualProcessorRoot::Deactivate 메서드

IExecutionResource::CurrentSubscriptionLevel 메서드