Partager via


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