Partager via


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 : concrt.h Namespace : 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érationDynamicProgressFeedbackType, soit ProgressFeedbackEnabledProgressFeedbackDisabled

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 MaxExecutionResourcesspé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érationSchedulingProtocolType, soit EnhanceScheduleGroupLocalityEnhanceForwardProgress

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

Voir aussi

accès concurrentiel Namespace