Partager via


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éinitulé pour les erreurs de page, les suspensions de threads, les appels de procédure asynchrone du noyau (API), et ainsi de suite, 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éinitulé pour bloquer les appels de fonction, les tentatives d’acquisition de verrous qui bloquent, les erreurs de page, les suspensions de threads, les appels de procédure asynchrone du noyau (API), 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 de régions critiques, si le code est entré dans une région critique, puis qu’une région hyper-critique est InsideHyperCriticalRegion retournée.

Hiérarchie d'héritage

IThreadProxy

IUMSThreadProxy

Spécifications

En-tête : concrtrm.h

Espace de noms : concurrency

IUMSThreadProxy ::EnterCriticalRegion, méthode

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éinitulé pour les erreurs de page, les suspensions de threads, les appels de procédure asynchrone du noyau (API), 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éinitulé pour bloquer les appels de fonction, les tentatives d’acquisition de verrous qui bloquent, les erreurs de page, les suspensions de threads, les appels de procédure asynchrone du noyau (API), 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 hyper-critiques sont réentrantes.

Notes

Le planificateur doit être extrêmement prudent sur les méthodes qu’il appelle et ce qu’il acquiert dans de telles régions. Si le code d’une telle région bloque un verrou qui est détenu par un élément que le planificateur est responsable de la planification, il se peut que le blocage se produit.

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 hyper-critiques 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 de régions critiques, si le code est entré dans une région critique, puis qu’une région hyper-critique est InsideHyperCriticalRegion retournée.

virtual CriticalRegionType GetCriticalRegionType() const = 0;

Valeur de retour

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

Voir aussi

accès concurrentiel Namespace
IUMSScheduler, structure