IThreadProxy::SwitchOut 메서드

컨텍스트 내부 루트 가상 프로세서에서에서 분리 합니다.

virtual void SwitchOut(
   SwitchingProxyState switchState = Blocking
) =0;

매개 변수

  • switchState
    스위치를 실행 중인 스레드 프록시의 상태를 나타냅니다.매개 변수는 SwitchingProxyState의 형식입니다.

설명

사용 SwitchOut 컨텍스트 루트입니다 실행, 어떠한 이유로 가상 프로세서에서에서 분리 하는 경우.값에 따라 매개 변수 전달 switchState, 및 루트 가상 프로세서에서 실행 중인 여부와 관계 없이 호출이 즉시 반환 이나 프록시는 컨텍스트와 연관 된 스레드를 차단 합니다.오류가 호출 하는 것이 SwitchOut 로 설정는 매개 변수 Idle.이렇게 하면에 invalid_argument 예외입니다.

SwitchOut리소스 관리자, 작업을 수행 하도록 지시 하거나 임시 oversubscribed 가상 프로세서 루트를 요청 하 고 작업이 완료 된 스케줄러를 했습니다 가상 프로세서의 수를 줄이려면 원하는 경우 유용 합니다.이 경우 메서드를 호출 해야 IVirtualProcessorRoot::Remove 를 호출 하기 전에 프로세서를 가상 루트에 SwitchOut 매개 변수로 switchState 설정 Blocking.이 스레드 프록시 차단 됩니다 및 다른 가상 프로세서 루트 스케줄러에서 실행 가능 해지면 실행 다시 시작 됩니다.차단 스레드 프록시는 함수 SwitchTo를 호출하여 이 스레드 프록시의 실행 컨텍스트로 전환하여 다시 시작할 수 있습니다.또한 가상 프로세서 루트를 활성화하기 위해 관련 컨텍스트를 사용하여 스레드 프록시를 다시 시작할 수도 있습니다.이를 수행하는 방법에 대한 자세한 내용은 IVirtualProcessorRoot::Activate를 참조하십시오.

SwitchOut나중에 스레드 프록시 차단 또는 가상 프로세서 루트에서 일시적으로 분리, 실행 중인 스케줄러가 해당 작업에 대 한 전달 동안 활성화 될 수 있습니다 있도록 가상 프로세서를 초기화 하려는 경우에 사용할 수 있습니다.사용 SwitchOut 매개 변수가 switchState 설정 Blocking 프록시 스레드를 차단 하 고 싶다면.사용 하 여 나중에 재개할 수 있습니다 SwitchTo 또는 IVirtualProcessorRoot::Activate 위에서 설명한 것 처럼.사용 SwitchOut 로 설정는 매개 변수 Nesting 때 일시적으로이 스레드 프록시에서 실행, 루트 가상 프로세서를 분리할 및 스케줄러 가상 프로세서와 연관 된.호출 SwitchOut 매개 변수가 switchState 설정 Nesting 초기화 루트와 현재 스레드 프록시 하나 필요 하지 않고 실행을 계속 하려면 루트 가상 프로세서에서 실행 하는 동안 발생 합니다.스레드 프록시 호출 될 때까지 해당 스케줄러 나갔습니다 간주 됩니다의 IThreadProxy::SwitchOut 메서드와 Blocking 나중에 시간.두 번째 호출에서 SwitchOut 매개 변수로 설정 합니다 Blocking 으로 재개 될 수 있도록 컨텍스트를 차단 된 상태로 반환 하기 위한 것입니다 SwitchTo 또는 IVirtualProcessorRoot::Activate 에서 스케줄러에서 분리.재초기화 없이 루트 가상 프로세서에서 실행 되 고 있던 때문에 발생 합니다.

초기화 가상 프로세서 루트 스케줄러를 리소스 관리자에 의해 부여 된 새로운 가상 프로세서 루트 더 다릅니다.실행에 의해 활성화 실행 컨텍스트에 사용과 사용 하 여 IVirtualProcessorRoot::Activate.

SwitchOut는 현재 실행 중인 스레드 또는 결과가 정의되었음을 나타내는 IThreadProxy 인터페이스에서 호출되어야 합니다.

Visual Studio 2010와 함께 제공 되는 헤더 및 라이브러리에서이 메서드는 매개 변수를 취하지 않습니다, 루트 가상 프로세서를 초기화 하지 못했습니다.기본 매개 변수 값의 Visual Studio 2012을 업그레이드할 때 이전 동작을 유지 하려면 Blocking 제공 됩니다.

요구 사항

헤더: concrtrm.h

네임 스페이스: 동시성

참고 항목

참조

IThreadProxy 구조체