ScheduleGroup – třída
Představuje abstrakci pro skupinu plánů. Skupiny plánování uspořádají sadu souvisejících prací, která je přínosná z toho, že se časově spojí, spuštěním jiného úkolu ve stejné skupině před přesunutím do jiné skupiny nebo prostorově spuštěním více položek ve stejné skupině na stejném uzlu NUMA nebo fyzickém soketu.
Syntaxe
class ScheduleGroup;
Členové
Chráněné konstruktory
Název | Popis |
---|---|
~ScheduleGroup – destruktor |
Veřejné metody
Název | Popis |
---|---|
Id | Vrátí identifikátor pro skupinu plánů, která je jedinečná v rámci plánovače, do kterého skupina patří. |
Odkaz | Zvýší počet odkazů na skupinu plánů. |
Vydaná verze | Sníží počet odkazů na skupinu plánovačů. |
ScheduleTask | Naplánuje lehký úkol v rámci skupiny plánů. |
Hierarchie dědičnosti
ScheduleGroup
Požadavky
Hlavička: concrt.h
Namespace: souběžnost
ID
Vrátí identifikátor pro skupinu plánů, která je jedinečná v rámci plánovače, do kterého skupina patří.
virtual unsigned int Id() const = 0;
Návratová hodnota
Identifikátor skupiny plánů, která je jedinečná v rámci plánovače, do které skupina patří.
delete – operátor
Objekt ScheduleGroup
je vnitřně zničen modulem runtime při uvolnění všech externích odkazů na něj. Nelze jej explicitně odstranit.
void operator delete(
void* _PObject);
void operator delete(
void* _PObject,
int,
const char *,
int);
Parametry
_PObject
Ukazatel na objekt, který se má odstranit.
Reference
Zvýší počet odkazů na skupinu plánů.
virtual unsigned int Reference() = 0;
Návratová hodnota
Nově navýšený počet odkazů.
Poznámky
Obvykle se používá ke správě životnosti skupiny plánů pro složení. Pokud počet odkazů skupiny plánů klesne na nulu, skupina plánů se odstraní modulem runtime. Skupina plánů vytvořená pomocí metody CurrentScheduler::CreateScheduleGroup nebo Metoda Scheduler::CreateScheduleGroup začíná počtem odkazů na jednu.
Verze
Sníží počet odkazů na skupinu plánovačů.
virtual unsigned int Release() = 0;
Návratová hodnota
Nově dekrementovaný počet odkazů.
Poznámky
Obvykle se používá ke správě životnosti skupiny plánů pro složení. Pokud počet odkazů skupiny plánů klesne na nulu, skupina plánů se odstraní modulem runtime. Po zavolání Release
metody konkrétní početkrát odebrat počet odkazů na vytvoření a všechny další odkazy umístěné pomocí Reference
metody nelze dále využít skupinu plánů. Výsledkem tohoto chování bude nedefinované chování.
Skupina plánů je přidružená k konkrétní instanci plánovače. Před uvolněním všech odkazů na plánovač se musíte ujistit, že všechny odkazy na skupinu plánů budou vydány, protože to může vést ke zničení plánovače. Jinak by to mohlo za následek nedefinované chování.
~ScheduleGroup
virtual ~ScheduleGroup();
ScheduleTask
Naplánuje lehký úkol v rámci skupiny plánů.
virtual void ScheduleTask(
TaskProc _Proc,
_Inout_opt_ void* _Data) = 0;
Parametry
_Proc
Ukazatel na funkci, která se má provést, aby se provedlo tělo lehké úlohy.
_Data
Ukazatel void na data, která se předají jako parametr textu úkolu.
Poznámky
ScheduleTask
Volání metody implicitně umístí počet odkazů na skupinu plánů, která je odebrána modulem runtime v příslušné době po spuštění úlohy.
Viz také
concurrency – obor názvů
CurrentScheduler – třída
Scheduler – třída
Plánovač úloh