Partager via


Context, classe

Représente une abstraction pour un contexte d'exécution.

class Context;

Membres

Constructeurs protégés

Nom

Description

Context::~Context, destructeur

Méthodes publiques

Nom

Description

Context::Block, méthode

Bloque le contexte actuel.

Context::CurrentContext, méthode

Retourne un pointeur au contexte actuel.

Context::GetId, méthode

Retourne un identificateur pour le contexte qui est unique dans le planificateur auquel le contexte appartient.

Context::GetScheduleGroupId, méthode

Retourne un identificateur pour le groupe de planification sur lequel le contexte fonctionne actuellement.

Context::GetVirtualProcessorId, méthode

Retourne un identificateur pour le processeur virtuel sur lequel le contexte s'exécute actuellement.

Context::Id, méthode

Retourne un identificateur pour le contexte actuel qui est unique dans le planificateur auquel le contexte actuel appartient.

Context::IsCurrentTaskCollectionCanceling, méthode

Retourne une indication spécifiant si la collection de tâches qui s'exécute actuellement inline sur le contexte actuel est en cours d'annulation (ou le sera bientôt).

Context::IsSynchronouslyBlocked, méthode

Détermine si le contexte est bloqué de façon synchrone. Un contexte est considéré pour être bloqué de façon synchrone s'il a exécuté explicitement une action qui a mené au blocage.

Context::Oversubscribe, méthode

Injecte un processeur virtuel supplémentaire dans un planificateur pour la durée d'un bloc de code en cas d'appel sur un contexte s'exécutant sur l'un des processeurs virtuels dans ce planificateur.

Context::ScheduleGroupId, méthode

Retourne un identificateur pour le groupe de planification sur lequel le contexte actuel fonctionne.

Context::Unblock, méthode

Débloque le contexte et le rend exécutable.

Context::VirtualProcessorId, méthode

Retourne un identificateur pour le processeur virtuel sur lequel le contexte actuel s'exécute.

Context::Yield, méthode

Cède l'exécution afin qu'un autre contexte puisse s'exécuter. Si aucun autre contexte n'est disponible pour prendre le relais, le planificateur peut passer à un processus d'un autre système d'exploitation.

Notes

Le planificateur de runtime d'accès concurrentiel (voir Planificateur) utilise des contextes d'exécution pour exécuter le travail mis en file d'attente par votre application sur le planificateur. Un processus Win32 est un exemple de contexte d'exécution sur un système d'exploitation Windows.

À tout moment, le niveau d'accès concurrentiel d'un planificateur est égal au nombre de processeurs virtuels qui lui sont accordés par le Gestionnaire des ressources. Un processeur virtuel est une représentation abstraite d'une ressource de traitement qui mappe à un thread matériel dans le système sous-jacent. Seul un contexte de planificateur unique peut s'exécuter sur un processeur virtuel à un moment donné.

Le planificateur est coopératif par nature et un contexte en cours d'exécution peut céder son processeur virtuel à un contexte différent à tout moment s'il souhaite entrer dans un état d'attente. À l'issue de l'attente, il ne peut pas reprendre tant qu'un processeur virtuel disponible dans le planificateur commence à l'exécuter.

Hiérarchie d'héritage

Context

Configuration requise

En-tête : concrt.h

Espace de noms : concurrency

Voir aussi

Référence

concurrency, espace de noms

Scheduler, classe

Concepts

Planificateur de tâches (runtime d'accès concurrentiel)