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. |
Riferimento | 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