concurrency, espace de noms
L'espace de noms Concurrency fournit des classes et des fonctions qui vous donnent accès au runtime d'accès concurrentiel, une infrastructure de programmation simultanée pour C++. Pour plus d'informations, consultez Concurrency Runtime.
namespace concurrency;
Membres
Espaces de noms
Nom |
Description |
---|---|
concurrency::extensibility Namespace |
Typedef
Nom |
Description |
---|---|
runtime_object_identity |
Chaque instance de message a une identité qui le suit lorsqu'il est cloné et passé entre des composants de messagerie. Ceci ne peut pas être l'adresse de l'objet de message. |
task_status |
Un type qui représente l'état terminal d'une tâche. Les valeurs valides sont completed et canceled. |
TaskProc |
Abstraction élémentaire d'une tâche, définie sous la forme void (__cdecl * TaskProc)(void *). Un TaskProc est appelé pour appeler le corps d'une tâche. |
TaskProc_t |
Abstraction élémentaire d'une tâche, définie sous la forme void (__cdecl * TaskProc_t)(void *). Un TaskProc est appelé pour appeler le corps d'une tâche. |
Classes
Nom |
Description |
---|---|
La classe affinity_partitioner est semblable à la classe static_partitioner, mais elle améliore l'affinité de cache par son choix de mapper les plages inférieures en threads de travail. Elle peut améliorer considérablement lorsqu'une boucle est exécutée à nouveau sur le même groupe de données, et quand les données tiennent dans le cache. Notez que le même objet affinity_partitioner doit être utilisé avec les itérations suivantes d'une boucle parallèle exécutée sur un groupe de données particulier, pour tirer parti de la localité des données. |
|
Classe prévue pour être utilisée comme une classe de base pour tous les agents indépendants. Cela est utilisé pour masquer l'état d'autres agents et interagir grâce au passage de messages. |
|
La classe auto_partitioner représente l'usage des méthodes par défaut parallel_for, parallel_for_each et parallel_transform pour partitionner la plage sur laquelle ils itèrent. Cette méthode de partition utilise le vol de plage pour équilibrer la charge ainsi que l'annulation itérative. |
|
Cette classe décrit une exception qui est renvoyée dès qu'un bloc de messagerie reçoit un pointeur vers une cible qui n'est pas valide pour l'opération en cours d'exécution. |
|
Un bloc de messagerie call est une source multiple, target_block classé qui appelle une fonction spécifiée lors de la réception d'un message. |
|
La classe cancellation_token représente la capacité à déterminer si une opération d'annulation a été demandée. Un jeton donné peut être associé à un task_group, structured_task_group, ou à une task pour fournir l'annulation implicite. Il peut également être interrogé pour l'annulation ou avoir un rappel enregistré en cas d'annulation du cancellation_token_source associé. |
|
La classe cancellation_token_registration représente une notification de rappel de cancellation_token. Lorsque la méthode register sur cancellation_token est utilisée pour recevoir une notification relative à la date d'annulation, un objet cancellation_token_registration est retourné comme handle au rappel afin que l'appelant puisse demander qu'un rappel spécifique ne soit plus effectué via l'utilisation de la méthode deregister. |
|
La classe cancellation_token_source représente la capacité à annuler une opération annulable. |
|
Un bloc de messagerie choice est une source multiple, bloc de cible unique qui représente une interaction de flux de contrôle avec un jeu de sources. Le bloc de choix attendra que l'une des sources multiples produise un message et propagera l'index de la source qui a produit le message. |
|
L'objet combinable<T> vise à fournir des copies des données spécifiques au thread pour exécuter des sous-calculs locaux de thread sans verrou pendant des algorithmes parallèles. À la fin de l'opération en parallèle, les sous-calculs spécifiques au thread peuvent être fusionnés en un résultat final. Cette classe peut être utilisée à la place d'une variable partagée et peut améliorer les performances si la variable partagée est susceptible de provoquer de nombreux conflits. |
|
La classe concurrent_priority_queue est un conteneur qui permet à plusieurs threads de pousser et dépiler simultanément des éléments. Les éléments sont dépilés par ordre de priorité, où la priorité est déterminée par un foncteur fourni comme argument du modèle. |
|
La classe concurrent_queue est une classe de conteneur de séquences qui autorise l'accès premier entré, premier sorti à ses éléments. Il permet un ensemble limité d'opérations concurrentiellement sécurisées, telles que push et try_pop. |
|
La classe concurrent_unordered_map est un conteneur sécurisé du point de vue de l'accès concurrentiel qui contrôle une séquence de longueur variable d'éléments de type std::pair<const _Key_type, _Element_type>. La séquence est représentée de manière à autoriser les opérations d'ajout, d'accès aux éléments, d'accès aux itérateurs et de parcours d'itérateur sécurisées du point de vue de l'accès concurrentiel. |
|
La classe concurrent_unordered_multimap est un conteneur sécurisé du point de vue de l'accès concurrentiel qui contrôle une séquence de longueur variable d'éléments de type std::pair<const _Key_type, _Element_type>. La séquence est représentée de manière à autoriser les opérations d'ajout, d'accès aux éléments, d'accès aux itérateurs et de parcours d'itérateur sécurisées du point de vue de l'accès concurrentiel. |
|
La classe concurrent_unordered_multiset est un conteneur sécurisé du point de vue de l'accès concurrentiel qui contrôle une séquence de longueur variable d'éléments de type _Key_type. La séquence est représentée de manière à autoriser les opérations d'ajout, d'accès aux éléments, d'accès aux itérateurs et de parcours d'itérateur sécurisées du point de vue de l'accès concurrentiel. |
|
La classe concurrent_unordered_set est un conteneur sécurisé du point de vue de l'accès concurrentiel qui contrôle une séquence de longueur variable d'éléments de type _Key_type. La séquence est représentée de manière à autoriser les opérations d'ajout, d'accès aux éléments, d'accès aux itérateurs et de parcours d'itérateur sécurisées du point de vue de l'accès concurrentiel. |
|
La classe concurrent_vector est une classe de conteneur de séquences qui autorise l'accès aléatoire à tout élément. Elle permet des opérations d'ajout, d'accès d'éléments, d'accès d'itérateur et de parcours d'itérateur sécurisées du point de vue de l'accès concurrentiel. |
|
Représente une abstraction pour un contexte d'exécution. |
|
Cette classe décrit une exception qui est renvoyée dès que la méthode Unblock d'un objet Context est appelée à partir du même contexte. Cela indiquerait qu'un contexte donné a tenté de se débloquer. |
|
Cette classe décrit une exception qui est levée dès que les appels aux méthodes Block et Unblock d'un objet Context ne sont pas correctement combinés. |
|
Mutex non réentrant qui est explicitement informé du runtime d'accès concurrentiel. |
|
Représente une abstraction pour le planificateur actuel associé au contexte d'appel. |
|
Cette classe décrit une exception qui est levée dès que la méthode Scheduler::SetDefaultSchedulerPolicy est appelée lorsqu'un planificateur par défaut existe déjà dans le processus. |
|
Événement de réinitialisation manuelle qui est explicitement informé du runtime d'accès concurrentiel. |
|
Cette classe décrit une exception qui est levée dès qu'un verrouillage est acquis de façon incorrecte. |
|
Cette classe décrit une exception qui est renvoyée dès que la méthode Attach est appelée sur un objet Scheduler qui est déjà attaché au contexte actuel. |
|
Cette classe décrit une exception qui est renvoyée dès que la méthode CurrentScheduler::Detach est appelée sur un contexte qui n'a pas été attaché à un planificateur via la méthode Attach d'un objet Scheduler. |
|
Cette classe décrit une exception qui est levée dès que la méthode Reference est appelée sur un objet Scheduler en cours de fermeture, à partir d'un contexte qui ne fait pas partie de ce planificateur. |
|
Cette classe décrit une exception qui est renvoyée dès que la méthode link_target d'un bloc de messagerie est appelée et que le bloc de messagerie ne peut pas se connecter à la cible. Il peut s'agir du résultat du dépassement du nombre de liens autorisé pour le bloc de messagerie ou de la tentative de lier deux fois une cible spécifique à la même source. |
|
Cette classe décrit une exception qui est renvoyée lorsqu'un objet task_handle est planifié plusieurs fois via la méthode run d'un objet task_group ou structured_task_group sans appel aux méthodes wait ou run_and_wait. |
|
Cette classe décrit une exception qui est levée lorsqu'une opération non valide est exécutée qui n'est pas décrite de façon plus précise par un autre type d'exception levé par le runtime d'accès concurrentiel. |
|
Cette classe décrit une exception qui est levée lorsque la méthode Context::Oversubscribe est appelée avec le paramètre _BeginOversubscription défini sur false sans appel antérieur à la méthode Context::Oversubscribe avec le paramètre _BeginOversubscription défini comme true. |
|
Cette classe décrit une exception qui est levée dès qu'une clé non valide ou inconnue est passée à un constructeur d'objet SchedulerPolicy, ou que la méthode SetPolicyValue d'un objet SchedulerPolicy reçoit une clé qui doit être modifiée via d'autres moyens comme la méthode SetConcurrencyLimits. |
|
Cette classe décrit une exception qui est levée lors de toute tentative de définir les limites d'accès concurrentiel d'un objet SchedulerPolicy de sorte que la valeur de la clé MinConcurrency est inférieure à la valeur de la clé MaxConcurrency. |
|
Cette classe décrit une exception qui est renvoyée dès qu'une clé de stratégie d'un objet SchedulerPolicy est définie sur une valeur non valide pour cette clé. |
|
La classe ISource est l'interface pour tous les blocs source. Les blocs source propagent des messages aux blocs ITarget. |
|
La classe ITarget est l'interface pour tous les blocs cibles. Les blocs cible consomment des messages offerts à eux par les blocs ISource. |
|
Un bloc de messagerie join est un propagator_block de cible unique, de source multiple et classé qui combine ensemble des messages de type _Type à partir de chacune de ses sources. |
|
Une abstraction d'un emplacement physique sur le matériel hardware. |
|
Enveloppe de message de base qui contient la charge utile de données qui est passée entre des blocs de messagerie. |
|
Cette classe décrit une exception qui est renvoyée dès qu'un bloc de messagerie ne peut pas trouver un message demandé. |
|
La classe message_processor est la classe de base abstraite pour le traitement d'objets message. Il n'y a aucune garantie sur le classement des messages. |
|
Cette classe décrit une exception qui est renvoyée dès que des tâches sont encore planifiées pour un objet task_group ou un objet structured_task_group au moment où le destructeur de cet objet s'exécute. Cette exception ne sera jamais renvoyée si le destructeur est atteint en raison du déroulement de pile suite à une exception. |
|
L'objet multi_link_registry est un network_link_registry qui gère plusieurs blocs source ou plusieurs blocs cibles. |
|
Un bloc de messagerie multitype_join est un bloc de messagerie de cible unique et de source multiple qui combine ensemble des messages de types différents à partir de chacune de ses sources et offre un tuple des messages combinés à ses cibles. |
|
Cette classe décrit une exception qui est renvoyée lorsque le runtime d'accès concurrentiel détecte que l'on a omis d'appeler la méthode CurrentScheduler::Detach sur un contexte joint à un deuxième planificateur via la méthode Attach de l'objet Scheduler. |
|
La classe de base abstraite network_link_registry gère les liens entre les blocs source et cibles. |
|
Cette classe décrit une exception qui est levée lorsqu'une opération a dépassé son délai. |
|
Un ordered_message_processor est un message_processor qui permet aux blocs de messages de traiter les messages dans l'ordre dans lequel ils ont été reçus. |
|
Un bloc de messagerie overwrite_buffer est un propagator_block ordonné, multi-sources et multi-cibles capable de stocker un seul message la fois. Les nouveaux messages remplacent ceux précédemment maintenus. |
|
La classe de rapporteur de progression permet de signaler les notifications de progression d'un type spécifique. Chaque objet progress_reporter est lié à une action ou une opération asynchrone particulière. |
|
La classe propagator_block est une classe de base abstraite pour les blocs de messages qui sont à la fois une source et une cible. Il combine les fonctionnalités des classes target_block et source_block. |
|
Verrou de lecteur/writer, basé sur file d'attente, à préférence de writer, à rotation uniquement locale. Le verrou accorde un accès premier entré, premier sorti aux writers et prive les lecteurs sous une charge continue de writers. |
|
Représente une abstraction pour un groupe de planification. Les groupes de planification organisent un ensemble de travaux connexes qui bénéficient d'être planifiés près des uns des autres, au niveau temporel en exécutant une autre tâche du même groupe avant de se déplacer vers un autre groupe, ou au niveau spatial en exécutant plusieurs éléments du même groupe sur le même nœud NUMA ou socket physique. |
|
Représente une abstraction pour un planificateur de runtime d'accès concurrentiel. |
|
Cette classe décrit une exception qui est levée dès qu'une opération nécessitant qu'un planificateur soit attaché au contexte actuel est réalisée alors qu'aucun planificateur n'est attaché. |
|
Cette classe décrit une exception qui est renvoyée en raison de l'échec de l'acquisition d'une ressource critique dans le runtime d'accès concurrentiel. |
|
Cette classe décrit une exception levée en raison d'un échec dans la création d'un contexte d'exécution de worker du runtime d'accès concurrentiel. |
|
La classe SchedulerPolicy contient un jeu de paires clé/valeur, un pour chaque élément de stratégie, qui contrôle le comportement d'une instance du planificateur. |
|
La classe simple_partitioner représente un partitionnement statique de la plage sur laquelle itère parallel_for. Le partitionneur divise la plage en segments de sorte que chaque segment possède au moins le nombre d'itérations spécifié par la taille du segment. |
|
Un bloc de messagerie single_assignment est un propagator_block de cible multiple, de source multiple et classé capable de stocker un message unique, écrit une seule fois. |
|
L'objet single_link_registry est un network_link_registry qui gère uniquement un seul bloc source ou cible. |
|
La classe source_block est une classe de base abstraite pour les blocs source uniquement. La classe fournit une fonctionnalité basique de gestion des liaisons et vérifie les erreurs courantes. |
|
L'objet source_link_manager gère les liens réseau entre les blocs de messagerie et les blocs ISource. |
|
La classe static_partitioner représente un partitionnement statique de la plage sur laquelle itère parallel_for. Le partitionneur divise la plage en autant de segments qu'il existe de workers disponibles pour le planificateur sous-jacent. |
|
La classe structured_task_group représente une collection très structurée de travail parallèle. Vous pouvez mettre en file d'attente des tâches parallèles individuelles dans un structured_task_group à l'aide d'objets task_handle et attendre qu'elles se terminent, ou annuler le groupe de tâches avant la fin de leur exécution, ce qui conduira à l'abandon de toutes les tâches qui n'ont pas commencé. |
|
La classe target_block est une classe de base abstraite qui fournit des fonctionnalités de gestion des liens de base et vérifie les erreurs pour les blocs cibles uniquement. |
|
Classe task de la bibliothèque de modèles parallèles (PPL). Un objet task représente le travail qui peut être exécuté de façon asynchrone, et simultanément avec d'autres tâches et un travail parallèle généré par des algorithmes parallèles dans le runtime d'accès concurrentiel. Il produit un résultat de type _ResultType une fois l'opération terminée correctement. Les tâches du type task<void> ne produisent aucun résultat. Une tâche peut être mise en attente et annulée indépendamment des autres tâches. Elle peut également être composée d'autres tâches à l'aide des continuations (then) ainsi que de modèles de jointure (when_all) et de choix (when_any). |
|
Cette classe décrit une exception levée par la couche de tâches PPL pour forcer l'annulation de la tâche actuelle. Elle est également levée par la méthode get() sur la tâche, pour une tâche annulée. |
|
La classe task_completion_event vous permet de différer l'exécution d'une tâche jusqu'à ce qu'une condition soit remplie, ou de démarrer une tâche en réponse à un événement externe. |
|
La classe task_continuation_context vous permet de spécifier l'emplacement d'exécution d'une continuation. Il est utile d'utiliser cette classe d'une application du Windows Store. Pour les fenêtres autres que les fenêtres Windows Store, le contexte d'exécution de la continuation de tâche est déterminé par l'exécution, et n'est pas configurable. |
|
La classe task_group représente une collection de travaux parallèles qui peuvent être mis en attente ou annulés. |
|
La classe task_handle représente un élément de travail parallèle individuel. Il encapsule les instructions et les données obligatoires pour exécuter un travail. |
|
Représente les options autorisées pour créer une tâche |
|
Un bloc de messagerie timer est un source_block à cible unique capable d'envoyer un message à sa cible après qu'une période spécifiée s'est écoulée ou à intervalles spécifiques. |
|
Un bloc de messagerie transformer est un propagator_block ordonné, multi-sources, à cible unique qui peut accepter des messages d'un type et stocker un nombre illimité de messages d'un type différent. |
|
Un bloc de messagerie unbounded_buffer est un propagator_block ordonné multi-sources et multi-cibles capable de stocker un nombre illimité de messages. |
|
Cette classe décrit une exception qui est renvoyée dès qu'un système d'exploitation non pris en charge est utilisé. |
Structures
Nom |
Description |
---|---|
La structure DispatchState est utilisée pour transférer l'état à la méthode IExecutionContext::Dispatch. Il décrit les circonstances sous lesquelles la méthode Dispatch est appelée sur une interface IExecutionContext. |
|
Interface à un contexte d'exécution qui peut s'exécuter sur un processeur virtuel donné et dont le contexte peut être modifié de manière coopérative. |
|
Abstraction d'un thread matériel. |
|
Interface au Gestionnaire de ressources du runtime d'accès concurrentiel. C'est l'interface par laquelle les planificateurs communiquent avec le Gestionnaire des ressources. |
|
Interface à une abstraction d'un planificateur de travail. Le Gestionnaire des ressources du runtime d'accès concurrentiel utilise cette interface pour communiquer avec les planificateurs de tâches. |
|
Interface par laquelle les planificateurs communiquent avec le Gestionnaire des ressources du runtime d'accès concurrentiel pour négocier l'allocation des ressources. |
|
Abstraction d'un thread d'exécution. Selon la clé de stratégie SchedulerType du planificateur que vous créez, le Gestionnaire des ressources vous accordera un proxy de thread stocké par un thread Win32 standard ou un thread UMS (User-Mode Schedulable). Les threads UMS sont pris en charge sur les systèmes d'exploitation 64 bits avec la version Windows 7 et supérieure. |
|
Une interface avec une ressource d'exécution comme défini par le gestionnaire de ressources. |
|
Une interface avec un nœud de topologie comme défini par le gestionnaire de ressources. Un nœud contient une ou plusieurs ressources d'exécution. |
|
Représente une liste de saisie semi-automatique UMS. Lorsqu'un thread UMS se bloque, le contexte de planification désigné du planificateur est distribué afin de décider quoi planifier sur la racine de processeur virtuel sous-jacente pendant que le thread d'origine est bloqué. Lorsque le thread d'origine se débloque, le système d'exploitation le met en file d'attente dans la liste de saisie semi-automatique qui est accessible via cette interface. Le planificateur peut interroger la liste de saisie semi-automatique sur le contexte de planification désigné ou tout autre emplacement sur lequel il recherche du travail. |
|
Interface à une abstraction d'un planificateur de travail qui veut que le Gestionnaire de ressources du runtime d'accès concurrentiel lui envoie des threads UMS (user mode schedulable). Le Gestionnaire des ressources utilise cette interface pour communiquer avec les planificateurs de thread UMS. L'interface IUMSScheduler hérite de l'interface IScheduler. |
|
Abstraction d'un thread d'exécution. Si vous souhaitez que des threads planifiables en mode utilisateur (UMS) soient accordés à votre planificateur, définissez la valeur de l'élément de stratégie du planificateur SchedulerKind sur UmsThreadDefault et implémentez l'interface IUMSScheduler. Les threads UMS sont pris en charge uniquement sur les systèmes d'exploitation 64 bits avec la version Windows 7 et supérieure. |
|
Représente une notification du Gestionnaire de ressources informant qu'un proxy de thread bloqué ayant déclenché un retour au contexte de planification désigné du planificateur est maintenant débloqué et prêt à être planifié. Cette interface n'est pas valide une fois le contexte d'exécution associé du proxy de thread, retourné par la méthode GetContext, est replanifié. |
|
Abstraction d'un thread matériel sur laquelle un proxy de thread peut s'exécuter. |
|
Interface du planificateur |
|
Représente un pointeur vers un planificateur. Cette classe existe pour permettre la spécification d'une durée de vie partagée à l'aide de shared_ptr ou d'une référence simple à l'aide d'un pointeur brut. |
Énumérations
Nom |
Description |
---|---|
États valides pour un agent. |
|
Types d'événements qui peuvent être suivis à l'aide des fonctionnalités de traçage offertes par la Bibliothèque d'Agents. |
|
Types d'événements qui peuvent être suivis à l'aide des fonctionnalités de traçage offertes par le runtime d'accès concurrentiel. |
|
Indicateurs de suivi pour les types d'événement |
|
Type de région critique dans laquelle se trouve un contexte. |
|
Utilisé par la stratégie DynamicProgressFeedback pour décrire si les ressources du planificateur seront rééquilibrées d'après les statistiques rassemblées à partir du planificateur ou uniquement selon les processeurs virtuels qui entrent ou sortent de l'état d'inactivité 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, énumération. |
|
Type d'un bloc de messagerie join. |
|
Réponses valides pour une offre d'un objet message à un bloc. |
|
Clés de stratégie qui décrivent des aspects de comportement de 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 (runtime d'accès concurrentiel). |
|
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, énumération. |
|
Utilisé par la stratégie SchedulingProtocol pour décrire l'algorithme de planification qui sera utilisé pour le planificateur. Pour plus d'informations sur les stratégies de planificateur disponibles, consultez PolicyElementKey, énumération. |
|
Utilisé pour indiquer l'état dans lequel se trouve un proxy de thread, lorsqu'il exécute un basculement de contexte coopératif vers un proxy de thread différent. |
|
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. |
|
Utilisé par la stratégie WinRTInitialization pour décrire si et comment les runtimes Windows sont initialisés sur des threads de planificateur pour une application exécutée sur les systèmes d'exploitation avec Windows 8 ou une version ultérieure. Pour plus d'informations sur les stratégies de planificateur disponibles, consultez PolicyElementKey, énumération. |
Fonctions
Nom |
Description |
---|---|
Alloue un bloc de mémoire de la taille spécifiée depuis le sous-allocateur de cache du runtime d'accès concurrentiel. |
|
Surchargé. Opération d'envoi asynchrone qui planifie une tâche permettant de propager les données au bloc cible. |
|
Annule la tâche en cours d'exécution. Cette fonction peut être appelée à partir du corps d'une tâche pour annuler l'exécution de la tâche et la faire passer à l'état canceled. Bien qu'elle puisse être utilisée en réponse à la fonction is_task_cancellation_requested, vous pouvez également l'utiliser toute seule, pour initialiser l'annulation de la tâche en cours d'exécution. Ce n'est pas un scénario pris en charge pour appeler cette fonction si vous n'êtes pas dans le corps de task. Cela entraînerait un comportement non défini tel qu'un blocage dans votre application. |
|
Crée une construction asynchrone Windows Runtime basé sur un utilisateur lambda ou un objet de fonction fourni. Le type de retour de create_async est IAsyncAction^, IAsyncActionWithProgress<TProgress>^, IAsyncOperation<TResult>^ ou IAsyncOperationWithProgress<TResult, TProgress>^ selon la signature de l'expression lambda passée à la méthode. |
|
Surchargé. Crée un objet task PPL. create_task peut être utilisé partout où vous auriez utilisé un constructeur de tâche. Il est principalement fourni pour des raisons de commodité, car il permet d'utiliser le mot clé auto tout en créant des tâches. |
|
Retourne une interface qui représente l'instance de singleton du Gestionnaire de ressources du runtime d'accès concurrentiel. Le Gestionnaire des ressources est chargé d'assigner des ressources aux planificateurs qui souhaitent coopérer les uns avec les autres. |
|
Désactive le suivi dans le runtime d'accès concurrentiel. Cette fonction est déconseillée car le traçage ETW est annulé par défaut. |
|
Active le suivi dans le runtime d'accès concurrentiel. Cette fonction est déconseillée car le traçage ETW est enclenché par défaut. |
|
Libère un bloc de mémoire précédemment alloué par la méthode Alloc au sous-allocateur de cache du runtime d'accès concurrentiel. |
|
get_ambient_scheduler, fonction (runtime d'accès concurrentiel) |
|
Retourne un identificateur unique qui peut être assigné à un contexte d'exécution qui implémente l'interface IExecutionContext. |
|
Retourne la version du système d'exploitation. |
|
Retourne le nombre de threads matériels sur le système sous-jacent. |
|
Retourne le nombre de nœuds NUMA ou packages de processeur sur le système sous-jacent. |
|
Retourne un identificateur unique qui peut être assigné à un planificateur qui implémente l'interface IScheduler. |
|
Crée un point d'interruption d'annulation. Si une annulation est en cours dans le contexte où cette fonction est appelée, il renvoie une exception interne qui abandonne l'exécution du travail parallèle en cours de exécution. Si l'annulation n'est pas en cours, la fonction ne fait rien. |
|
Retourne une indication spécifiant si le groupe de tâches qui s'exécute actuellement inline sur le contexte actuel est en cours d'annulation (ou le sera bientôt). Notez que si aucun groupe de tâches ne s'exécute actuellement inline dans le contexte actuel, false sera retourné. |
|
Retourne une indication du fait que la tâche en cours d'exécution a reçu une demande d'annulation de son exécution. L'annulation est demandée sur une tâche si la tâche a été créée avec un jeton d'annulation, et que la source de jeton associée à ce jeton est annulée. |
|
Surchargé. Construit un bloc de messagerie choice à partir d'un Scheduler ou d'un ScheduleGroup facultatifs et deux sources d'entrée ou plus. |
|
Surchargé. Construit un bloc de messagerie greedy multitype_join à partir d'un Scheduler ou d'un ScheduleGroup facultatifs et deux sources d'entrée ou plus. |
|
Surchargé. Construit un bloc de messagerie non_greedy multitype_join à partir d'un Scheduler ou d'un ScheduleGroup facultatifs et deux sources d'entrée ou plus. |
|
Méthode de fabrique pour la création d'un objet task_handle. |
|
Surchargé. Organise les éléments dans une plage spécifiée dans un ordre non décroissant, ou selon un critère de classement spécifié par un prédicat binaire, en parallèle. Cette fonction est sémantiquement semblable à std::sort car c'est un tri sur place, basé sur la comparaison, instable, sauf qu'elle a besoin d'espace supplémentaire pour O(n), et nécessite une initialisation par défaut pour que les éléments soient triés. |
|
Surchargé. parallel_for itère au sein d'une plage d'index et exécute une fonction fournie par utilisateur à chaque itération, en parallèle. |
|
Surchargé. parallel_for_each applique une fonction spécifiée à chaque élément dans une plage, en parallèle. Elle est sémantiquement équivalente à la fonction for_each dans l'espace de noms std, mais l'itération des éléments est exécutée en parallèle et l'ordre d'itération n'est pas spécifié. L'argument _Func doit prendre en charge un opérateur d'appel de fonction de la forme operator()(T), où le paramètre T est le type d'élément du conteneur sur lequel l'itération est réalisée. |
|
Surchargé. Exécute les objets de fonction fournis comme paramètres en parallèle et se bloque jusqu'à la fin de leur exécution. Chaque objet de fonction peut être une expression lambda, un pointeur vers une fonction ou tout objet qui prend en charge l'opérateur d'appel de fonction avec la signature void operator()(). |
|
Surchargé. Organise les éléments dans une plage spécifiée dans un ordre non décroissant à l'aide d'un algorithme de tri de base. C'est une fonction de tri stable nécessitant une fonction de projection qui peut projeter les éléments à trier en clés similaires à des entiers non signés. L'initialisation par défaut est requise pour les éléments à trier. |
|
Surchargé. Calcule la somme de tous les éléments dans une plage spécifiée en calculant les sommes partielles consécutives, ou calcule le résultat de résultats partiels consécutifs obtenus en utilisant en parallèle une opération binaire spécifiée autre que la somme. parallel_reduce est sémantiquement semblable à std::accumulate, mis à part qu'il requiert que l'opération binaire soit associative, et qu'il requiert une valeur d'identité au lieu d'une valeur initiale. |
|
Surchargé. Organise les éléments dans une plage spécifiée dans un ordre non décroissant, ou selon un critère de classement spécifié par un prédicat binaire, en parallèle. Cette fonction est sémantiquement semblable à std::sort car il s'agit d'un tri sur place, instable et basé sur la comparaison. |
|
Surchargé. Applique un foncteur (fonction objet) spécifié à chaque élément d'une plage source, ou paire de deux plages sources, et copie les valeurs renvoyées du foncteur (fonction objet) dans une plage de destination, en parallèle. Ce fonctionnel est sémantiquement équivalent à std::transform. |
|
Surchargé. Implémentation receive générale permettant à un contexte d'attendre des données d'une source exactement et de filtrer les valeurs acceptées. |
|
Exécute un foncteur (fonction objet) immédiatement et synchrone dans le contexte d'un jeton donné d'annulation. |
|
Surchargé. Opération d'envoi synchrone qui attend que la cible accepte ou refuse le message. |
|
set_ambient_scheduler, fonction (runtime d'accès concurrentiel) |
|
Surchargé. Restreint les ressources d'exécution utilisées par les threads de travail internes du runtime d'accès concurrentiel à l'affinité spécifiée. Il n'est pas valide d'appeler cette méthode uniquement avant que le gestionnaire de ressources ait été créé, ou entre deux durées de vie du gestionnaire de ressources. On peut l'appeler plusieurs fois à condition que le gestionnaire de ressources n'existe pas au moment de l'appel. Une fois que la limite d'affinité a été définie, elle demeure effective tant que le prchain appel valide appelle la méthode set_task_execution_resources. Le masque d'affinité a fourni n'a pas besoin d'être un sous-ensemble du masque d'affinité de processus. L'affinité de processus sera mise à jour si nécessaire. |
|
Échange les éléments de deux objets concurrent_vector. |
|
task_from_exception, fonction (runtime d'accès concurrentiel) |
|
Associe le nom donné au bloc de message ou à l'agent de message dans la trace ETW. |
|
Surchargé. Implémentation try-receive générale permettant à un contexte de rechercher des données d'une source exactement et de filtrer les valeurs acceptées. Si les données ne sont pas prêtes, la méthode retournera la valeur false. |
|
Suspend le contexte actuel pour une durée spécifiée. |
|
Crée une tâche qui s'effectue correctement lorsque toutes les tâches fournies comme arguments s'achèvent correctement. |
|
Surchargé. Crée une tâche qui s'effectue correctement lorsque n'importe quelle tâche fournie comme arguments s'achève correctement. |
Opérateurs
Nom |
Description |
---|---|
Teste si l'objet concurrent_vector à gauche de l'opérateur n'est pas égal à l'objet concurrent_vector du côté droit. |
|
Surchargé. Crée une tâche qui s'effectue correctement lorsque les deux tâches fournies comme arguments s'achèvent correctement. |
|
Surchargé. Crée une tâche qui s'effectue correctement lorsque l'une des taches fournies comme arguments s'achève correctement. |
|
Teste si l'objet concurrent_vector à gauche de l'opérateur est inférieur à l'objet concurrent_vector du côté droit. |
|
Teste si l'objet concurrent_vector à côté gauche de l'opérateur est inférieur ou égal à l'objet concurrent_vector du côté droit. |
|
Teste si l'objet concurrent_vector à gauche de l'opérateur est égal à l'objet concurrent_vector du côté droit. |
|
Teste si l'objet concurrent_vector à gauche de l'opérateur est supérieur à l'objet concurrent_vector du côté droit. |
|
Teste si l'objet concurrent_vector à gauche de l'opérateur est supérieur ou égal à l'objet concurrent_vector du côté droit. |
Constantes
Nom |
Description |
---|---|
Un GUID de catégorie ({B9B5B78C - 0713 à 4898 - Les 21 A.C. 67949DCED07}) qui décrit les événements ETW déclenchés par la Bibliothèque d'agents du runtime d'accès concurrentiel. |
|
Catégorie GUID qui décrit des événements ETW déclenchés par le runtime d'accès concurrentiel directement en rapport avec des tâches. |
|
GUID du fournisseur ETW pour le runtime d'accès concurrentiel. |
|
Indique la prise en charge de l'interface du Gestionnaire de ressources définie dans Visual Studio 2010. |
|
Catégorie GUID qui décrit des événements ETW déclenchés par le runtime d'accès concurrentiel qui n'est pas décrit plus spécifiquement par une autre catégorie. |
|
Catégorie GUID qui décrit des événements ETW déclenchés par le runtime d'accès concurrentiel directement en rapport avec des contextes. |
|
Valeur qui indique qu'une attente ne doit jamais expirer. |
|
Valeur qui indique qu'une attente a expiré. |
|
Valeur spéciale pour la clé de stratégie ContextPriority qui indique que la priorité de thread de tous les contextes du planificateur doit être la même que celle du thread ayant créé le planificateur. |
|
Catégorie GUID qui décrit des événements ETW déclenchés par le runtime d'accès concurrentiel directement en rapport avec des verrous. |
|
Valeur spéciale pour les clés de stratégie MinConcurrency et MaxConcurrency. Prend comme valeur par défaut le nombre de threads matériels sur l'ordinateur en l'absence d'autres contraintes. |
|
Catégorie GUID qui décrit des événements ETW déclenchés par le runtime d'accès concurrentiel directement en rapport avec l'utilisation de la fonction parallel_for_each. |
|
Catégorie GUID qui décrit des événements ETW déclenchés par le runtime d'accès concurrentiel directement en rapport avec l'utilisation de la fonction parallel_for. |
|
Catégorie GUID qui décrit des événements ETW déclenchés par le runtime d'accès concurrentiel directement en rapport avec l'utilisation de la fonction parallel_invoke. |
|
Catégorie GUID qui décrit des événements ETW déclenchés par le runtime d'accès concurrentiel directement en rapport avec le gestionnaire des ressources. |
|
Catégorie GUID qui décrit des événements ETW déclenchés par le runtime d'accès concurrentiel directement en rapport avec des groupes de planning. |
|
Catégorie GUID qui décrit des événements ETW déclenchés par le runtime d'accès concurrentiel directement en rapport avec l'activité du planificateur. |
|
Catégorie GUID qui décrit des événements ETW déclenchés par le runtime d'accès concurrentiel directement en rapport avec des processeurs virtuels. |
Configuration requise
Header: agents.h, concrt.h, concrtrm.h, concurrent_priority_queue.h, concurrent_queue.h, concurrent_unordered_map.h, concurrent_unordered_set.h, concurrent_vector.h, internal_concurrent_hash.h, internal_split_ordered_list.h, ppl.h, pplcancellation_token.h, pplconcrt.h, pplinterface.h, ppltasks.h