Sdílet prostřednictvím


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

Jméno 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

Jméno 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