IExecutionContext, structure
Interface avec un contexte d'exécution qui peut s'exécuter sur un processeur virtuel donné et dont le contexte peut être commuté de manière coopérative.
Syntaxe
struct IExecutionContext;
Membres
Méthodes publiques
Nom | Description |
---|---|
IExecutionContext ::D ispatch | Méthode appelée lorsqu’un proxy de thread démarre l’exécution d’un contexte d’exécution particulier. Il doit s’agir de la routine de travail principale pour votre planificateur. |
IExecutionContext ::GetId | Retourne un identificateur unique pour le contexte d’exécution. |
IExecutionContext ::GetProxy | Retourne une interface au proxy de thread qui exécute ce contexte. |
IExecutionContext ::GetScheduler | Retourne une interface au planificateur auquel appartient ce contexte d’exécution. |
IExecutionContext ::SetProxy | Associe un proxy de thread à ce contexte d’exécution. Le proxy de thread associé appelle cette méthode juste avant de commencer à exécuter la méthode du Dispatch contexte. |
Notes
Si vous implémentez un planificateur personnalisé qui s’interface avec resource Manager du runtime concurrentiel, vous devez implémenter l’interface IExecutionContext
. Les threads créés par Resource Manager effectuent un travail pour le compte de votre planificateur en exécutant la IExecutionContext::Dispatch
méthode.
Hiérarchie d'héritage
IExecutionContext
Spécifications
En-tête : concrtrm.h
Espace de noms : concurrency
IExecutionContext ::D ispatch, méthode
Méthode appelée lorsqu’un proxy de thread démarre l’exécution d’un contexte d’exécution particulier. Il doit s’agir de la routine de travail principale pour votre planificateur.
virtual void Dispatch(_Inout_ DispatchState* pDispatchState) = 0;
Paramètres
pDispatchState
Pointeur vers l’état dans lequel ce contexte d’exécution est distribué. Pour plus d’informations sur l’état de répartition, consultez DispatchState.
IExecutionContext ::GetId, méthode
Retourne un identificateur unique pour le contexte d’exécution.
virtual unsigned int GetId() const = 0;
Valeur de retour
Identificateur entier unique.
Notes
Vous devez utiliser la méthode GetExecutionContextId
pour obtenir un identificateur unique pour l’objet qui implémente l’interface IExecutionContext
, avant d’utiliser l’interface comme paramètre pour les méthodes fournies par Resource Manager. Vous êtes censé retourner le même identificateur lorsque la GetId
fonction est appelée.
Un identificateur obtenu à partir d’une autre source peut entraîner un comportement non défini.
IExecutionContext ::GetProxy, méthode
Retourne une interface au proxy de thread qui exécute ce contexte.
virtual IThreadProxy* GetProxy() = 0;
Valeur de retour
Interface IThreadProxy
. Si le proxy de thread du contexte d’exécution n’a pas été initialisé avec un appel à SetProxy
, la fonction doit retourner NULL
.
Notes
Resource Manager appelle la SetProxy
méthode sur un contexte d’exécution, avec une IThreadProxy
interface en tant que paramètre, avant d’entrer la Dispatch
méthode sur le contexte. Vous êtes censé stocker cet argument et le retourner sur les appels vers GetProxy()
.
IExecutionContext ::GetScheduler, méthode
Retourne une interface au planificateur auquel appartient ce contexte d’exécution.
virtual IScheduler* GetScheduler() = 0;
Valeur de retour
Interface IScheduler
.
Notes
Vous devez initialiser le contexte d’exécution avec une interface valide IScheduler
avant de l’utiliser comme paramètre pour les méthodes fournies par Resource Manager.
IExecutionContext ::SetProxy, méthode
Associe un proxy de thread à ce contexte d’exécution. Le proxy de thread associé appelle cette méthode juste avant de commencer à exécuter la méthode du Dispatch
contexte.
virtual void SetProxy(_Inout_ IThreadProxy* pThreadProxy) = 0;
Paramètres
pThreadProxy
Interface du proxy de thread sur le point d’entrer la Dispatch
méthode dans ce contexte d’exécution.
Notes
Vous êtes censé enregistrer le paramètre pThreadProxy
et le retourner sur un appel à la GetProxy
méthode. Resource Manager garantit que le proxy de thread associé au contexte d’exécution ne changera pas pendant que le proxy de thread exécute la Dispatch
méthode.
Voir aussi
accès concurrentiel Namespace
IScheduler, structure
IThreadProxy, structure