concurrency, énumérations de l’espace de noms
énumération agent_status
États valides d'un agent
.
enum agent_status;
Valeurs
Nom | Description |
---|---|
agent_canceled |
agent annulé. |
agent_created |
Le agent fichier a été créé, mais pas démarré. |
agent_done |
Terminé agent sans être annulé. |
agent_runnable |
Le agent démarrage a été effectué, mais n’a pas entré sa run méthode. |
agent_started |
Le agent démarrage a commencé. |
Notes
Pour plus d’informations, consultez Agents asynchrones.
Spécifications
En-tête : concrt.h
énumération Agents_EventType
Types d'événements qui peuvent être tracés à l'aide des fonctionnalités de traçage offertes par la bibliothèque d'agents.
enum Agents_EventType;
Valeurs
Nom | Description |
---|---|
AGENTS_EVENT_CREATE |
Type d’événement qui représente la création d’un objet |
AGENTS_EVENT_DESTROY |
Type d’événement qui représente la suppression d’un objet |
AGENTS_EVENT_END |
Type d’événement qui représente la conclusion d’un traitement |
AGENTS_EVENT_LINK |
Type d’événement qui représente la liaison de blocs de messages |
AGENTS_EVENT_NAME |
Type d’événement qui représente le nom d’un objet |
AGENTS_EVENT_SCHEDULE |
Type d’événement qui représente la planification d’un processus |
AGENTS_EVENT_START |
Type d’événement qui représente l’initiation d’un traitement |
AGENTS_EVENT_UNLINK |
Type d’événement qui représente la dissociation des blocs de message |
Spécifications
En-tête : concrt.h
énumération ConcRT_EventType
Types d'événements qui peuvent être tracés à l'aide des fonctionnalités de traçage offertes par le runtime d'accès concurrentiel.
enum ConcRT_EventType;
Valeurs
Nom | Description |
---|---|
CONCRT_EVENT_ATTACH |
Type d’événement qui représente l’acte d’un attachement à un planificateur. |
CONCRT_EVENT_BLOCK |
Type d’événement qui représente l’acte d’un blocage de contexte. |
CONCRT_EVENT_DETACH |
Type d’événement qui représente l’acte d’un détachement d’un planificateur. |
CONCRT_EVENT_END |
Type d’événement qui marque le début d’une paire d’événements de début/fin. |
CONCRT_EVENT_GENERIC |
Type d’événement utilisé pour divers événements. |
CONCRT_EVENT_IDLE |
Type d’événement qui représente l’acte d’un contexte qui devient inactif. |
CONCRT_EVENT_START |
Type d’événement qui marque le début d’une paire d’événements de début/fin. |
CONCRT_EVENT_UNBLOCK |
Type d’événement qui représente l’acte de débloquer un contexte. |
CONCRT_EVENT_YIELD |
Type d’événement qui représente l’acte d’un rendement de contexte. |
Spécifications
En-tête : espace de noms concrt.h : concurrence
énumération Concrt_TraceFlags
Indicateurs de suivi des types d'événements.
enum Concrt_TraceFlags;
Valeurs
Nom | Description |
---|---|
AgentEventFlag |
|
AllEventsFlag |
|
ContextEventFlag |
|
PPLEventFlag |
|
ResourceManagerEventFlag |
|
SchedulerEventFlag |
|
VirtualProcessorEventFlag |
Spécifications
En-tête : concrt.h
CriticalRegionType, énumération
Type de région critique dans lequel se trouve un contexte.
enum CriticalRegionType;
Valeurs
Nom | Description |
---|---|
InsideCriticalRegion |
Indique que le contexte se trouve à l’intérieur d’une région critique. Dans une région critique, les suspensions asynchrones sont masquées dans le planificateur. Si une telle suspension se produit, Resource Manager attend que le thread devienne exécutable et le reprend simplement au lieu d’appeler à nouveau le planificateur. Tous les verrous pris à l’intérieur d’une telle région doivent être pris avec un soin extrême. |
InsideHyperCriticalRegion |
Indique que le contexte se trouve à l’intérieur d’une région hyper-critique. Dans une région hyper-critique, les suspensions synchrones et asynchrones sont masquées dans le planificateur. Si une telle suspension ou blocage se produit, le gestionnaire de ressources attend que le thread devienne exécutable et le reprend simplement au lieu d’appeler à nouveau le planificateur. Les verrous pris à l’intérieur d’une telle région ne doivent jamais être partagés avec du code s’exécutant en dehors d’une telle région. Cela entraînera un blocage imprévisible. |
OutsideCriticalRegion |
Indique que le contexte se trouve en dehors de n’importe quelle région critique. |
Spécifications
En-tête : concrtrm.h
DynamicProgressFeedbackType, énumération
Utilisé par la stratégie DynamicProgressFeedback
pour décrire si les ressources du planificateur sont rééquilibrées d'après les informations statistiques collectées auprès du planificateur ou uniquement en fonction des processeurs virtuels qui entrent dans l'état d'inactivité et en sortent via des appels aux méthodes Activate
et Deactivate
sur l'interface IVirtualProcessorRoot
. Pour plus d’informations sur les stratégies de planificateur disponibles, consultez PolicyElementKey.
enum DynamicProgressFeedbackType;
Valeurs
Nom | Description |
---|---|
ProgressFeedbackDisabled |
Le planificateur ne collecte pas d’informations de progression. Le rééquilibrage est effectué uniquement en fonction du niveau d’abonnement du thread matériel sous-jacent. Pour plus d’informations sur les niveaux d’abonnement, consultez IExecutionResource ::CurrentSubscriptionLevel. Cette valeur est réservée pour une utilisation par le runtime. |
ProgressFeedbackEnabled |
Le planificateur collecte les informations de progression et les transmet au gestionnaire de ressources. Le gestionnaire de ressources utilisera ces informations statistiques pour rééquilibrer les ressources pour le compte du planificateur en plus du niveau d’abonnement du thread matériel sous-jacent. Pour plus d’informations sur les niveaux d’abonnement, consultez IExecutionResource ::CurrentSubscriptionLevel. |
énumération join_type
Type d'un bloc de messagerie join
.
enum join_type;
Valeurs
Nom | Description |
---|---|
greedy |
join Les blocs de messagerie gourmands acceptent immédiatement un message lors de la propagation. Cela est plus efficace, mais a la possibilité de verrouiller en direct, en fonction de la configuration réseau. |
non_greedy |
Les blocs de messagerie non gourmands join reportent les messages et essaient de les consommer une fois tous arrivés. Ils sont assurés de fonctionner, mais plus lents. |
Spécifications
En-tête : agents.h
énumération message_status
Réponses valides à une offre d'objet message
à un bloc.
enum message_status;
Valeurs
Nom | Description |
---|---|
accepted |
La cible a accepté le message. |
declined |
La cible n’a pas accepté le message. |
missed |
La cible a essayé d’accepter le message, mais il n’était plus disponible. |
postponed |
La cible a reporté le message. |
Spécifications
En-tête : agents.h
PolicyElementKey, énumération
Clés de stratégie qui décrivent certains aspects du comportement du planificateur. Chaque élément de stratégie est décrit par une paire clé-valeur. Pour plus d’informations sur les stratégies de planificateur et leur impact sur les planificateurs, consultez Planificateur de tâches.
enum PolicyElementKey;
Valeurs
Nom | Description |
---|---|
ContextPriority |
Priorité du thread du système d’exploitation de chaque contexte dans le planificateur. Si cette clé est définie sur la valeur INHERIT_THREAD_PRIORITY que les contextes du planificateur héritent de la priorité du thread qui a créé le planificateur.Valeurs valides : toutes les valeurs valides pour la fonction Windows SetThreadPriority et la valeur spéciale INHERIT_THREAD_PRIORITY Valeur par défaut : THREAD_PRIORITY_NORMAL |
ContextStackSize |
Taille de pile réservée de chaque contexte dans le planificateur en kilo-octets. Valeurs valides : entiers positifs Valeur par défaut : 0 , indiquant que la valeur par défaut du processus pour la taille de la pile doit être utilisée. |
DynamicProgressFeedback |
Détermine si les ressources du planificateur seront rééquilibrées en fonction des informations statistiques collectées à partir du planificateur ou uniquement en fonction du niveau d’abonnement des threads matériels sous-jacents. Pour plus d’informations, consultez DynamicProgressFeedbackType. Valeurs valides : membre de l’énumération DynamicProgressFeedbackType , soit ProgressFeedbackEnabled ProgressFeedbackDisabled Valeur par défaut : ProgressFeedbackEnabled |
LocalContextCacheSize |
Lorsque la SchedulingProtocol clé de stratégie est définie sur la valeur EnhanceScheduleGroupLocality , cela spécifie le nombre maximal de contextes exécutables autorisés à être mis en cache par file d’attente locale du processeur virtuel. Ces contextes s’exécutent généralement dans l’ordre de dernière sortie (LIFO) sur le processeur virtuel qui les a amenés à devenir exécutables. Notez que cette clé de stratégie n’a aucune signification lorsque la SchedulingProtocol clé est définie sur la valeur EnhanceForwardProgress .Valeurs valides : entiers non négatifs Valeur par défaut : 8 |
MaxConcurrency |
Niveau maximal d’accès concurrentiel souhaité par le planificateur. Le gestionnaire de ressources essaiera d’allouer initialement ce grand nombre de processeurs virtuels. La valeur spéciale MaxExecutionResources indique que le niveau d’accès concurrentiel souhaité est identique au nombre de threads matériels sur l’ordinateur. Si la valeur spécifiée pour MinConcurrency est supérieure au nombre de threads matériels sur l’ordinateur et MaxConcurrency est spécifiée comme MaxExecutionResources , la valeur pour MaxConcurrency laquelle elle est levée pour correspondre à ce qui est défini pour MinConcurrency .Valeurs valides : entiers positifs et valeur spéciale MaxExecutionResources Valeur par défaut : MaxExecutionResources |
MaxPolicyElementKey |
Clé d’élément de stratégie maximale. Clé d’élément non valide. |
MinConcurrency |
Niveau d’accès concurrentiel minimal qui doit être fourni au planificateur par le gestionnaire de ressources. Le nombre de processeurs virtuels attribués à un planificateur ne sera jamais inférieur au minimum. La valeur spéciale MaxExecutionResources indique que le niveau d’accès concurrentiel minimal est identique au nombre de threads matériels sur l’ordinateur. Si la valeur spécifiée pour MaxConcurrency est inférieure au nombre de threads matériels sur l’ordinateur et MinConcurrency est spécifiée comme MaxExecutionResources , la valeur pour MinConcurrency laquelle elle est réduite pour correspondre à ce qui est défini pour MaxConcurrency .Valeurs valides : entiers non négatifs et valeur MaxExecutionResources spéciale . Notez que pour les stratégies de planificateur utilisées pour la construction de planificateurs d’exécution concurrentiel, la valeur 0 n’est pas valide.Valeur par défaut : 1 |
SchedulerKind |
Type de threads que le planificateur utilisera pour les contextes d’exécution sous-jacents. Pour plus d’informations, consultez SchedulerType. Valeurs valides : membre de l’énumération SchedulerType , par exemple, ThreadScheduler Valeur par défaut : ThreadScheduler . Cela se traduit par des threads Win32 sur tous les systèmes d’exploitation. |
SchedulingProtocol |
Décrit l’algorithme de planification qui sera utilisé par le planificateur. Pour plus d’informations, consultez SchedulingProtocolType. Valeurs valides : membre de l’énumération SchedulingProtocolType , soit EnhanceScheduleGroupLocality EnhanceForwardProgress Valeur par défaut : EnhanceScheduleGroupLocality |
TargetOversubscriptionFactor |
Nombre provisoire de processeurs virtuels par thread matériel. Le facteur de sursubscription cible peut être augmenté par Resource Manager, le cas échéant, pour satisfaire MaxConcurrency les threads matériels sur l’ordinateur.Valeurs valides : entiers positifs Valeur par défaut : 1 |
WinRTInitialization |
Spécifications
En-tête : concrt.h
SchedulerType, énumération
Utilisé par la stratégie SchedulerKind
pour décrire le type des threads que le planificateur doit utiliser pour les contextes d'exécution sous-jacents. Pour plus d’informations sur les stratégies de planificateur disponibles, consultez PolicyElementKey.
enum SchedulerType;
Valeurs
Nom | Description |
---|---|
ThreadScheduler |
Indique une demande explicite de threads Win32 standard. |
UmsThreadDefault |
Les threads schedulables en mode utilisateur (UMS) ne sont pas pris en charge dans le runtime d’accès concurrentiel dans Visual Studio 2013. L’utilisation UmsThreadDefault en tant que valeur pour la SchedulerType stratégie n’entraîne pas d’erreur. Toutefois, un planificateur créé avec cette stratégie utilise par défaut des threads Win32. |
Spécifications
En-tête : concrt.h
SchedulingProtocolType, énumération
Utilisé par la stratégie SchedulingProtocol
pour décrire l'algorithme de planification utilisé pour le planificateur. Pour plus d’informations sur les stratégies de planificateur disponibles, consultez PolicyElementKey.
enum SchedulingProtocolType;
Valeurs
Nom | Description |
---|---|
EnhanceForwardProgress |
Le planificateur préfère arrondir les groupes de planifications après l’exécution de chaque tâche. Les contextes déblocés sont généralement planifiés de manière initiale (FIFO). Les processeurs virtuels ne cachent pas les contextes déblocés. |
EnhanceScheduleGroupLocality |
Le planificateur préfère continuer à travailler sur des tâches au sein du groupe de planification actuel avant de passer à un autre groupe de planification. Les contextes déblocés sont mis en cache par processeur virtuel et sont généralement planifiés dans une dernière version (LIFO) par le processeur virtuel qui les a déblocées. |
Spécifications
En-tête : concrt.h
SwitchingProxyState, énumération
Utilisé pour indiquer l'état d'un proxy de thread, quand il exécute un changement de contexte coopératif vers un proxy de thread différent.
enum SwitchingProxyState;
Valeurs
Nom | Description |
---|---|
Blocking |
Indique que le thread appelant se bloque de manière coopérative et doit être exclusivement détenu par l’appelant jusqu’à ce qu’il s’exécute à nouveau et effectue une autre action. |
Idle |
Indique que le thread appelant n’est plus nécessaire par le planificateur et est retourné à Resource Manager. Le contexte qui a été distribué n’est plus en mesure d’être utilisé par Resource Manager. |
Nesting |
Indique que le thread appelant imbrication d’un planificateur enfant est nécessaire par l’appelant afin de l’attacher à un autre planificateur. |
Notes
Un paramètre de type SwitchingProxyState
est passé à la méthode IThreadProxy::SwitchTo
pour indiquer à Resource Manager comment traiter le proxy de thread qui effectue l’appel.
Pour plus d’informations sur l’utilisation de ce type, consultez IThreadProxy ::SwitchTo.
énumération task_group_status
Décrit l'état d'exécution d'un objet task_group
ou structured_task_group
. Une valeur de ce type est retournée par de nombreuses méthodes qui attendent que les tâches planifiées pour un groupe de tâches se terminent.
enum task_group_status;
Valeurs
Nom | Description |
---|---|
canceled |
L'objet task_group ou structured_task_group a été annulé. Une ou plusieurs tâches n’ont pas pu s’exécuter. |
completed |
Les tâches mises en file d’attente dans l’objet task_group ou structured_task_group sont terminées. |
not_complete |
Les tâches mises en file d’attente dans l’objet task_group ne sont pas terminées. Notez que cette valeur n'est actuellement pas retournée par le runtime d'accès concurrentiel. |
Spécifications
En-tête : pplinterface.h
WinRTInitializationType, énumération
Utilisé par la stratégie WinRTInitialization
pour décrire si et comment le Windows Runtime est initialisé sur les threads de planificateur pour une application qui s'exécute sur des systèmes d'exploitation Windows 8 ou versions ultérieures. Pour plus d’informations sur les stratégies de planificateur disponibles, consultez PolicyElementKey.
enum WinRTInitializationType;
Valeurs
Nom | Description |
---|---|
DoNotInitializeWinRT |
Lorsque l’application est exécutée sur des systèmes d’exploitation avec la version Windows 8 ou ultérieure, les threads dans le planificateur n’initialisent pas Windows Runtime. |
InitializeWinRTAsMTA |
Lorsque l’application est exécutée sur des systèmes d’exploitation avec la version Windows 8 ou ultérieure, chaque thread du planificateur initialise Windows Runtime et déclare qu’il fait partie de l’appartement multithread. |
Spécifications
En-tête : concrt.h