Share via


Classe ScheduleGroup

Rappresenta un'astrazione per un gruppo di pianificazione. I gruppi di pianificazione organizzano un set di lavoro correlato che trae vantaggio da una chiusura pianificata a livello temporaneo, eseguendo un'altra attività nello stesso gruppo prima di spostarsi in un altro gruppo, o a livello spaziale, eseguendo più elementi all'interno dello stesso gruppo sullo stesso nodo NUMA o sul socket fisico.

Sintassi

class ScheduleGroup;

Membri

Costruttori protetti

Nome Descrizione
Distruttore ~ScheduleGroup

Metodi pubblici

Nome Descrizione
Id Restituisce un identificatore per il gruppo di pianificazione univoco all'interno dell'utilità di pianificazione a cui appartiene il gruppo.
Reference Incrementa il conteggio riferimenti del gruppo di pianificazione.
Versione Decrementa il conteggio dei riferimenti del gruppo di pianificazione.
ScheduleTask Pianifica un'attività leggera all'interno del gruppo di pianificazione.

Gerarchia di ereditarietà

ScheduleGroup

Requisiti

Intestazione: concrt.h

Spazio dei nomi: Concurrency

ID.

Restituisce un identificatore per il gruppo di pianificazione univoco all'interno dell'utilità di pianificazione a cui appartiene il gruppo.

virtual unsigned int Id() const = 0;

Valore restituito

Identificatore del gruppo di pianificazione univoco all'interno dell'utilità di pianificazione a cui appartiene il gruppo.

operator delete

Un ScheduleGroup oggetto viene eliminato internamente dal runtime quando vengono rilasciati tutti i riferimenti esterni. Non è possibile eliminarlo in modo esplicito.

void operator delete(
    void* _PObject);

void operator delete(
    void* _PObject,
    int,
const char *,
    int);

Parametri

_PObject
Puntatore all'oggetto da eliminare.

Riferimento

Incrementa il conteggio riferimenti del gruppo di pianificazione.

virtual unsigned int Reference() = 0;

Valore restituito

Conteggio dei riferimenti appena incrementato.

Osservazioni:

Viene in genere usato per gestire la durata del gruppo di pianificazione per la composizione. Quando il numero di riferimenti di un gruppo di pianificazione scende a zero, il gruppo di pianificazione viene eliminato dal runtime. Un gruppo di pianificazione creato usando il metodo CurrentScheduler::CreateScheduleGroup o il metodo Scheduler::CreateScheduleGroup inizia con un conteggio dei riferimenti di uno.

Rilascio

Decrementa il conteggio dei riferimenti del gruppo di pianificazione.

virtual unsigned int Release() = 0;

Valore restituito

Conteggio dei riferimenti appena decrementato.

Osservazioni:

Viene in genere usato per gestire la durata del gruppo di pianificazione per la composizione. Quando il numero di riferimenti di un gruppo di pianificazione scende a zero, il gruppo di pianificazione viene eliminato dal runtime. Dopo aver chiamato il metodo Release per il numero specifico di volte per rimuovere il conteggio riferimenti di creazione e qualsiasi riferimento aggiuntivo inserito utilizzando il metodo Reference, non è possibile utilizzare ulteriormente il gruppo di pianificazione. In questo modo si verifica un comportamento non definito.

Un gruppo di pianificazione è associato a una particolare istanza dell'utilità di pianificazione. È necessario assicurarsi che tutti i riferimenti al gruppo di pianificazione vengano rilasciati prima del rilascio di tutti i riferimenti all'utilità di pianificazione, poiché questi ultimi potrebbero provocare la distruzione dell'utilità di pianificazione. In caso contrario, si ottiene un comportamento non definito.

~ScheduleGroup

virtual ~ScheduleGroup();

ScheduleTask

Pianifica un'attività leggera all'interno del gruppo di pianificazione.

virtual void ScheduleTask(
    TaskProc _Proc,
    _Inout_opt_ void* _Data) = 0;

Parametri

_Proc
Puntatore alla funzione da eseguire per eseguire il corpo dell'attività leggera.

_Dati
Puntatore void ai dati che verranno passati come parametro al corpo dell'attività.

Osservazioni:

La chiamata al ScheduleTask metodo inserisce in modo implicito un conteggio dei riferimenti nel gruppo di pianificazione che viene rimosso dal runtime in un momento appropriato dopo l'esecuzione dell'attività.

Vedi anche

Spazio dei nomi concurrency
Classe CurrentScheduler
Classe Scheduler
Utilità di pianificazione