Metoda task_group::Run
Naplánuje úkol task_group objektu.Pokud task_handle objekt je předán jako parametr run, volající je zodpovědná za správu platnosti task_handle objektu.Verze metody, která má odkaz na objekt funkci jako parametr zahrnuje přidělení haldy uvnitř runtime, který může být provádět méně dobře než verze, která přebírá odkaz na task_handle objektu.Verze, která přebírá parametr _Placement úlohu se s předpětím směrem k provádění v umístění určeném tímto parametrem.
template<
typename _Function
>
void run(
const _Function& _Func
);
template<
typename _Function
>
void run(
const _Function& _Func,
location& _Placement
);
template<
typename _Function
>
void run(
task_handle<_Function>& _Task_handle
);
template<
typename _Function
>
void run(
task_handle<_Function>& _Task_handle,
location& _Placement
);
Parametry
_Function
Typ objektu funkce, která bude vyvolána subjekt popisovač úkol provést._Func
Funkce nazývaný vyvolat těla úkolu.To může být lambda výraz nebo jiného objektu, který podporuje verzi operátor volání funkce s podpisem void operator()()._Placement
Odkaz na umístění, kde představuje úkol _Func parametr spustit._Task_handle
Popisovač naplánované práce.Všimněte si, že volající má odpovědnost za dobu životnosti tohoto objektu.Modul runtime bude nadále očekávat, že dokud buď live wait nebo run_and_wait byla volána metoda v této task_group objektu.
Poznámky
Modul runtime naplánuje poskytované pracovní funkce spustit později, což může být po volání funkce vrátí.Tato metoda používá task_handle objekt kopii poskytované pracovní funkce.Proto změny stavu, ke kterým dochází ve funkci objektu, který předat tuto metodu v kopii objektu funkce nezobrazí.Dále se ujistěte, že životnost všechny objekty, které projdou ukazatel nebo odkaz na funkci práce zůstává v platnosti, do práce vrátí.
Pokud task_group destructs jako výsledek příkazem výjimku ze zásobníku není nutné zaručit, že volání byla provedena buď wait nebo run_and_wait metoda.V tomto případě bude se objekt vhodně zrušit a počkejte úlohy zastoupen _Task_handle parametr dokončit.
Vyvolá metodu invalid_multiple_scheduling výjimku, pokud zpracování úlohy poskytují _Task_handle parametr již bylo naplánováno na objekt skupiny úkolů prostřednictvím run metoda a nebyla žádná požadovanými volání buď wait nebo run_and_wait metoda v této skupině úloh.
Požadavky
Záhlaví: ppl.h
Obor názvů: souběžnosti
Viz také
Referenční dokumentace
Metoda task_group::run_and_wait