Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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