Compartir a través de


IExecutionContext (Estructura)

Una interfaz a un contexto de ejecución que se puede ejecutar en un procesador virtual determinado y que puede cambiar de contexto de forma cooperativa.

Sintaxis

struct IExecutionContext;

Miembros

Métodos públicos

Nombre Descripción
IExecutionContext::Dispatch Método al que se llama cuando un proxy de subproceso comienza a ejecutar un contexto de ejecución determinado. Debe ser la rutina de trabajo principal del programador.
IExecutionContext::GetId Devuelve un identificador único para el contexto de ejecución.
IExecutionContext::GetProxy Devuelve una interfaz al proxy de subproceso que ejecuta este contexto.
IExecutionContext::GetScheduler Devuelve una interfaz al programador al que pertenece este contexto de ejecución.
IExecutionContext::SetProxy Asocia un proxy de subproceso a este contexto de ejecución. El proxy de subproceso asociado invoca este método justo antes de empezar a ejecutar el método Dispatch del contexto.

Comentarios

Si va a implementar un programador personalizado que interactúa con el Resource Manager del runtime de simultaneidad, deberá implementar la interfaz IExecutionContext. Los subprocesos creados por el Resource Manager realizan el trabajo en nombre del programador ejecutando el método IExecutionContext::Dispatch.

Jerarquía de herencia

IExecutionContext

Requisitos

Encabezado: concrtrm.h

Espacio de nombres: simultaneidad

IExecutionContext::D ispatch (Método)

Método al que se llama cuando un proxy de subproceso comienza a ejecutar un contexto de ejecución determinado. Debe ser la rutina de trabajo principal del programador.

virtual void Dispatch(_Inout_ DispatchState* pDispatchState) = 0;

Parámetros

pDispatchState
Puntero al estado en el que se envía este contexto de ejecución. Para obtener más información sobre el estado de envío, vea DispatchState.

IExecutionContext::GetId (Método)

Devuelve un identificador único para el contexto de ejecución.

virtual unsigned int GetId() const = 0;

Valor devuelto

Identificador entero único.

Comentarios

Use el método GetExecutionContextId para obtener un identificador único para el objeto que implementa la interfaz IExecutionContext antes de poder usar la interfaz como un parámetro en métodos que proporciona el Resource Manager. Se espera que devuelva el mismo identificador al invocar la función GetId.

Un identificador obtenido de un origen diferente podría dar lugar a un comportamiento sin definir.

IExecutionContext::GetProxy (Método)

Devuelve una interfaz al proxy de subproceso que ejecuta este contexto.

virtual IThreadProxy* GetProxy() = 0;

Valor devuelto

Interfaz IThreadProxy. Si el proxy de subproceso del contexto de ejecución no se ha inicializado con una llamada a SetProxy, la función debe devolver NULL.

Comentarios

El Resource Manager invocará el método SetProxy en un contexto de ejecución, con una interfaz IThreadProxy como parámetro, antes de escribir el método Dispatch en el contexto. Se espera que almacene este argumento y lo devuelva en llamadas a GetProxy().

IExecutionContext::GetScheduler (Método)

Devuelve una interfaz al programador al que pertenece este contexto de ejecución.

virtual IScheduler* GetScheduler() = 0;

Valor devuelto

Interfaz IScheduler.

Comentarios

Debe inicializar el contexto de ejecución con una interfaz válida IScheduler antes de usarlo como parámetro para los métodos proporcionados por el Resource Manager.

IExecutionContext::SetProxy (Método)

Asocia un proxy de subproceso a este contexto de ejecución. El proxy de subproceso asociado invoca este método justo antes de empezar a ejecutar el método Dispatch del contexto.

virtual void SetProxy(_Inout_ IThreadProxy* pThreadProxy) = 0;

Parámetros

pThreadProxy
Interfaz al proxy de subproceso que está a punto de escribir el método Dispatch en este contexto de ejecución.

Comentarios

Se espera que guarde el parámetro pThreadProxy y lo devuelva en una llamada al método GetProxy. El Resource Manager garantiza que el proxy de subproceso asociado al contexto de ejecución no cambiará mientras el proxy del subproceso ejecuta el método Dispatch.

Consulte también

concurrency (espacio de nombres)
IScheduler (estructura)
IThreadProxy (estructura)