IUMSThreadProxy, structure

Abstraction d'un thread d'exécution. Si vous voulez que votre planificateur reçoive des threads UMS (User-Mode Scheduling), affectez à l'élément de stratégie du planificateur SchedulerKind la valeur UmsThreadDefault, puis implémentez l'interface IUMSScheduler. Les threads UMS sont uniquement pris en charge sur les systèmes d'exploitation 64 bits avec Windows 7 et ses versions ultérieures.

Syntaxe

struct IUMSThreadProxy : public IThreadProxy;

Membres

Méthodes publiques

Nom Description
IUMSThreadProxy ::EnterCriticalRegion Appelé pour entrer dans une région critique. Dans une région critique, le planificateur n’observe pas les opérations de blocage asynchrones qui se produisent pendant la région. Cela signifie que le planificateur ne sera pas réentré pour les erreurs de page, les suspensions de threads, les appels de procédure asynchrone du noyau (APC), etc., pour un thread UMS.
IUMSThreadProxy ::EnterHyperCriticalRegion Appelé pour entrer dans une région hyper-critique. Dans une région hyper-critique, le planificateur n’observe aucune opération bloquante qui se produit pendant la région. Cela signifie que le planificateur ne sera pas réentré pour les appels de fonction bloquants, les tentatives d’acquisition de verrous qui bloquent, les erreurs de page, les suspensions de threads, les appels de procédure asynchrones du noyau (APCs), et ainsi de suite, pour un thread UMS.
IUMSThreadProxy::ExitCriticalRegion Appelé pour quitter une région critique.
IUMSThreadProxy ::ExitHyperCriticalRegion Appelé pour quitter une région hyper-critique.
IUMSThreadProxy ::GetCriticalRegionType Retourne le type de région critique dans laquelle se trouve le proxy de thread. Étant donné que les régions hyper-critiques sont un super-ensemble des régions critiques, si le code est entré dans une région critique puis dans une région hyper-critique, InsideHyperCriticalRegion sera retourné.

Hiérarchie d'héritage

IThreadProxy

IUMSThreadProxy

Spécifications

En-tête : concrtrm.h

Espace de noms : concurrence

IUMSThreadProxy::EnterCriticalRegion Method

Appelé pour entrer dans une région critique. Dans une région critique, le planificateur n’observe pas les opérations de blocage asynchrones qui se produisent pendant la région. Cela signifie que le planificateur ne sera pas ré-entré pour les défauts de page, les suspensions de threads, les appels de procédures asynchrones du noyau (APC), et ainsi de suite, pour un thread UMS.

virtual int EnterCriticalRegion() = 0;

Valeur de retour

Nouvelle profondeur de la région critique. Les régions critiques sont réentrantes.

IUMSThreadProxy::EnterHyperCriticalRegion Méthode

Appelé pour entrer dans une région hyper-critique. Dans une région hyper-critique, le planificateur n’observe aucune opération bloquante qui se produit pendant la région. Cela signifie que le planificateur ne sera pas réentré pour les appels de fonction bloquants, les tentatives d’acquisition de verrous qui bloquent, les défauts de page, les suspensions de threads, les appels de procédure asynchrone du noyau (APC), et ainsi de suite, pour un thread UMS.

virtual int EnterHyperCriticalRegion() = 0;

Valeur de retour

Nouvelle profondeur de la région hyper-critique. Les régions hypercritiques sont réentrantes.

Notes

Le planificateur doit être extrêmement prudent concernant les méthodes qu'il appelle et les verrous qu'il acquiert dans de telles régions. Si le code dans une telle région se bloque sur un verrou détenu par quelque chose dont le planificateur est chargé, un interblocage peut se produire.

IUMSThreadProxy::ExitCriticalRegion Méthode

Appelé pour quitter une région critique.

virtual int ExitCriticalRegion() = 0;

Valeur de retour

Nouvelle profondeur de la région critique. Les régions critiques sont réentrantes.

IUMSThreadProxy ::ExitHyperCriticalRegion, méthode

Appelé pour quitter une région hyper-critique.

virtual int ExitHyperCriticalRegion() = 0;

Valeur de retour

Nouvelle profondeur de la région hyper-critique. Les régions hypercritiques sont réentrantes.

IUMSThreadProxy::GetCriticalRegionType Méthode

Retourne le type de région critique dans laquelle se trouve le proxy de thread. Étant donné que les régions hyper-critiques sont un super-ensemble des régions critiques, si le code est entré dans une région critique puis dans une région hyper-critique, InsideHyperCriticalRegion sera retourné.

virtual CriticalRegionType GetCriticalRegionType() const = 0;

Valeur de retour

Type de région critique dans laquelle se trouve le proxy de thread.

Voir aussi

concurrence Namespace
IUMSScheduler, structure