ScheduleGroup, classe
Représente une abstraction d'un groupe de planification. Les groupes de planification organisent un ensemble de travaux connexes qui ont l’avantage d’être planifiés de façon rapprochée soit dans le temps, en exécutant une autre tâche dans le même groupe avant de passer à un autre groupe, soit dans l’espace, en exécutant plusieurs éléments au sein du même groupe sur le même nœud NUMA ou socket physique.
Syntaxe
class ScheduleGroup;
Membres
Constructeurs protégés
Nom | Description |
---|---|
~ScheduleGroup Destructor |
Méthodes publiques
Nom | Description |
---|---|
Id | Retourne un identificateur pour le groupe de planification unique dans le planificateur auquel appartient le groupe. |
Référence | Incrémente le nombre de références de groupe de planification. |
Version release | Décrémente le nombre de références de groupe du planificateur. |
ScheduleTask | Planifie une tâche légère au sein du groupe de planifications. |
Hiérarchie d'héritage
ScheduleGroup
Spécifications
En-tête : concrt.h
Espace de noms : concurrency
Id
Retourne un identificateur pour le groupe de planification unique dans le planificateur auquel appartient le groupe.
virtual unsigned int Id() const = 0;
Valeur de retour
Identificateur du groupe de planification unique dans le planificateur auquel appartient le groupe.
operator delete
Un ScheduleGroup
objet est détruit en interne par le runtime lorsque toutes les références externes sont libérées. Elle ne peut pas être supprimée explicitement.
void operator delete(
void* _PObject);
void operator delete(
void* _PObject,
int,
const char *,
int);
Paramètres
_PObject
Pointeur vers l’objet à supprimer.
Référence
Incrémente le nombre de références de groupe de planification.
virtual unsigned int Reference() = 0;
Valeur de retour
Nombre de références nouvellement incrémenté.
Notes
Il est généralement utilisé pour gérer la durée de vie du groupe de planification pour la composition. Lorsque le nombre de références d’un groupe de planification tombe à zéro, le groupe de planification est supprimé par le runtime. Un groupe de planification créé à l’aide de la méthode CurrentScheduler ::CreateScheduleGroup , ou la méthode Scheduler ::CreateScheduleGroup commence par un nombre de références.
Version release
Décrémente le nombre de références de groupe du planificateur.
virtual unsigned int Release() = 0;
Valeur de retour
Nombre de références nouvellement décrémentés.
Notes
Il est généralement utilisé pour gérer la durée de vie du groupe de planification pour la composition. Lorsque le nombre de références d’un groupe de planification tombe à zéro, le groupe de planification est supprimé par le runtime. Une fois que vous avez appelé la Release
méthode le nombre spécifique de fois pour supprimer le nombre de références de création et toutes les références supplémentaires placées à l’aide de la Reference
méthode, vous ne pouvez pas utiliser le groupe de planification plus loin. Cela entraîne un comportement non défini.
Un groupe de planification est associé à une instance de planificateur spécifique. Vous devez vous assurer que toutes les références au groupe de planification sont publiées avant que toutes les références au planificateur soient libérées, car cette dernière peut entraîner la destruction du planificateur. Dans le cas contraire, cela entraîne un comportement non défini.
~ScheduleGroup
virtual ~ScheduleGroup();
ScheduleTask
Planifie une tâche légère au sein du groupe de planifications.
virtual void ScheduleTask(
TaskProc _Proc,
_Inout_opt_ void* _Data) = 0;
Paramètres
_Proc
Pointeur vers la fonction à exécuter pour effectuer le corps de la tâche légère.
_Données
Pointeur void vers les données qui seront transmises en tant que paramètre au corps de la tâche.
Notes
L’appel de la ScheduleTask
méthode place implicitement un nombre de références sur le groupe de planification qui est supprimé par l’exécution à un moment approprié après l’exécution de la tâche.
Voir aussi
accès concurrentiel Namespace
CurrentScheduler, classe
Scheduler, classe
Planificateur de tâches