IExecutionContext 구조체
지정된 가상 프로세서에서 실행되고 협조적으로 컨텍스트가 전환될 수 있는 실행 컨텍스트에 대한 인터페이스입니다.
구문
struct IExecutionContext;
멤버
공용 메서드
이름 | 설명 |
---|---|
IExecutionContext::D spatch | 스레드 프록시가 특정 실행 컨텍스트 실행을 시작할 때 호출되는 메서드입니다. 스케줄러의 기본 작업자 루틴이어야 합니다. |
IExecutionContext::GetId | 실행 컨텍스트에 대한 고유 식별자를 반환합니다. |
IExecutionContext::GetProxy | 이 컨텍스트를 실행하는 스레드 프록시에 대한 인터페이스를 반환합니다. |
IExecutionContext::GetScheduler | 이 실행 컨텍스트가 속한 스케줄러에 대한 인터페이스를 반환합니다. |
IExecutionContext::SetProxy | 스레드 프록시를 이 실행 컨텍스트와 연결합니다. 연결된 스레드 프록시는 컨텍스트 Dispatch 의 메서드 실행을 시작하기 직전에 이 메서드를 호출합니다. |
설명
동시성 런타임의 Resource Manager와 인터페이스하는 사용자 지정 스케줄러를 구현하는 경우 인터페이스를 IExecutionContext
구현해야 합니다. Resource Manager에서 만든 스레드는 메서드를 실행하여 스케줄러를 대신하여 작업을 수행합니다 IExecutionContext::Dispatch
.
상속 계층 구조
IExecutionContext
요구 사항
헤더: concrtrm.h
네임스페이스: 동시성
IExecutionContext::D ispatch 메서드
스레드 프록시가 특정 실행 컨텍스트 실행을 시작할 때 호출되는 메서드입니다. 스케줄러의 기본 작업자 루틴이어야 합니다.
virtual void Dispatch(_Inout_ DispatchState* pDispatchState) = 0;
매개 변수
pDispatchState
이 실행 컨텍스트가 디스패치되는 상태에 대한 포인터입니다. 디스패치 상태에 대한 자세한 내용은 DispatchState를 참조하세요.
IExecutionContext::GetId 메서드
실행 컨텍스트에 대한 고유 식별자를 반환합니다.
virtual unsigned int GetId() const = 0;
Return Value
고유한 정수 식별자입니다.
설명
Resource Manager에서 제공하는 메서드에 대한 매개 변수로 인터페이스를 사용하기 전에 이 메서드 GetExecutionContextId
를 사용하여 인터페이스를 구현 IExecutionContext
하는 개체에 대한 고유 식별자를 가져와야 합니다. 함수가 호출될 때 GetId
동일한 식별자를 반환해야 합니다.
다른 원본에서 가져온 식별자는 정의되지 않은 동작을 초래할 수 있습니다.
IExecutionContext::GetProxy 메서드
이 컨텍스트를 실행하는 스레드 프록시에 대한 인터페이스를 반환합니다.
virtual IThreadProxy* GetProxy() = 0;
Return Value
IThreadProxy
인터페이스입니다. 실행 컨텍스트의 스레드 프록시가 호출 SetProxy
을 사용하여 초기화되지 않은 경우 함수는 반환 NULL
해야 합니다.
설명
Resource Manager는 컨텍스트에서 메서드를 입력 Dispatch
하기 전에 인터페이스를 매개 변수로 사용하여 실행 컨텍스트 IThreadProxy
에서 메서드를 호출 SetProxy
합니다. 이 인수를 저장하고 호출할 때 반환해야 합니다 GetProxy()
.
IExecutionContext::GetScheduler 메서드
이 실행 컨텍스트가 속한 스케줄러에 대한 인터페이스를 반환합니다.
virtual IScheduler* GetScheduler() = 0;
Return Value
IScheduler
인터페이스입니다.
설명
Resource Manager에서 제공하는 메서드에 대한 매개 변수로 사용하기 전에 유효한 IScheduler
인터페이스를 사용하여 실행 컨텍스트를 초기화해야 합니다.
IExecutionContext::SetProxy 메서드
스레드 프록시를 이 실행 컨텍스트와 연결합니다. 연결된 스레드 프록시는 컨텍스트 Dispatch
의 메서드 실행을 시작하기 직전에 이 메서드를 호출합니다.
virtual void SetProxy(_Inout_ IThreadProxy* pThreadProxy) = 0;
매개 변수
pThreadProxy
이 실행 컨텍스트에서 메서드를 입력 Dispatch
하려고 하는 스레드 프록시에 대한 인터페이스입니다.
설명
매개 변수 pThreadProxy
를 저장하고 메서드 호출에 반환해야 합니다 GetProxy
. Resource Manager는 스레드 프록시가 메서드를 실행하는 동안 실행 컨텍스트와 연결된 스레드 프록시가 변경되지 않도록 보장합니다 Dispatch
.