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 .

참고 항목

concurrency 네임스페이스
IScheduler 구조체
IThreadProxy 구조체