task_handle – třída
Třída task_handle
představuje individuální paralelní pracovní položku. Zapouzdřuje pokyny a data potřebná ke spuštění kusu práce.
Syntaxe
template<
typename _Function
>
class task_handle : public ::Concurrency::details::_UnrealizedChore;
Parametry
_Funkce
Typ objektu funkce, který bude vyvolán ke spuštění práce reprezentované objektem task_handle
.
Členové
Veřejné konstruktory
Název | Popis |
---|---|
task_handle | Vytvoří nový task_handle objekt. Práce úlohy se provádí vyvoláním funkce určené jako parametr konstruktoru. |
~task_handle Destruktor | task_handle Zničí objekt. |
Veřejné operátory
Název | Popis |
---|---|
operator() | Operátor volání funkce, který modul runtime vyvolá, aby provedl práci popisovače úkolu. |
Poznámky
task_handle
objekty lze použít ve spojení s objektem structured_task_group
nebo obecnějším task_group
objektem k dekompilování práce do paralelních úloh. Další informace naleznete v tématu Paralelismus úkolu.
Všimněte si, že tvůrce task_handle
objektu je zodpovědný za udržování životnosti vytvořeného task_handle
objektu, dokud už není vyžadován modulem Concurrency Runtime. Obvykle to znamená, že task_handle
objekt nesmí destrukci, dokud nebyla wait
volána metoda nebo run_and_wait
metoda task_group
, structured_task_group
do které je zařazena do fronty.
task_handle
objekty se obvykle používají ve spojení s lambdami jazyka C++. Vzhledem k tomu, že neznáte skutečný typ lambda, funkce make_task se obvykle používá k vytvoření objektu task_handle
.
Modul runtime vytvoří kopii pracovní funkce, kterou předáte objektu task_handle
. Všechny změny stavu, ke kterým dojde v objektu funkce, který předáte objektu task_handle
, se proto nezobrazí ve vaší kopii tohoto objektu funkce.
Hierarchie dědičnosti
task_handle
Požadavky
Hlavička: ppl.h
Obor názvů: souběžnost
operator()
Operátor volání funkce, který modul runtime vyvolá, aby provedl práci popisovače úkolu.
void operator()() const;
task_handle
Vytvoří nový task_handle
objekt. Práce úlohy se provádí vyvoláním funkce určené jako parametr konstruktoru.
task_handle(const _Function& _Func);
Parametry
_Func
Funkce, která bude vyvolána ke spuštění práce reprezentované objektem task_handle
. Může to být lambda functor, ukazatel na funkci nebo jakýkoli objekt, který podporuje verzi operátoru volání funkce s podpisem void operator()()
.
Poznámky
Modul runtime vytvoří kopii pracovní funkce, kterou předáte konstruktoru. Všechny změny stavu, ke kterým dojde v objektu funkce, který předáte objektu task_handle
, se proto nezobrazí ve vaší kopii tohoto objektu funkce.
~task_handle
task_handle
Zničí objekt.
~task_handle();
Viz také
concurrency – obor názvů
task_group – třída
structured_task_group – třída