task_completion_event – třída
Třída task_completion_event
umožňuje zpozdit provádění úkolu, dokud není splněna podmínka, nebo spustit úkol v reakci na externí událost.
Syntaxe
template<typename _ResultType>
class task_completion_event;
template<>
class task_completion_event<void>;
Parametry
_ResultType
Typ výsledku této task_completion_event
třídy.
Členové
Veřejné konstruktory
Název | Popis |
---|---|
task_completion_event | task_completion_event Vytvoří objekt. |
Veřejné metody
Název | Popis |
---|---|
set | Přetíženo. Nastaví událost dokončení úkolu. |
set_exception | Přetíženo. Rozšíří výjimku na všechny úkoly přidružené k této události. |
Poznámky
Pokud váš scénář vyžaduje, abyste vytvořili úkol, který se dokončí, použijte úlohu vytvořenou z události dokončení úkolu, a v určitém okamžiku v budoucnu tak máte naplánované její pokračování pro provádění. Musí task_completion_event
mít stejný typ jako úkol, který vytvoříte, a volání metody set u události dokončení úkolu s hodnotou tohoto typu způsobí dokončení přidruženého úkolu a poskytnout tuto hodnotu jako výsledek jeho pokračování.
Pokud událost dokončení úkolu není nikdy signalována, všechny úkoly vytvořené z ní budou při destrukci zrušeny.
task_completion_event
chová se jako inteligentní ukazatel a měl by být předán hodnotou.
Hierarchie dědičnosti
task_completion_event
Požadavky
Hlavička: ppltasks.h
Namespace: souběžnost
set
Nastaví událost dokončení úkolu.
bool set(_ResultType _Result) const ;
bool set() const ;
Parametry
_Výsledek
Výsledek pro nastavení této události.
Návratová hodnota
Metoda vrátí true
, pokud byla úspěšná při nastavení události. false
Vrátí se, pokud je událost již nastavena.
Poznámky
V případě více nebo souběžných volání set
bude úspěšné pouze první volání a jeho výsledek (pokud existuje) bude uložen v události dokončení úkolu. Zbývající sady jsou ignorovány a metoda vrátí false. Když nastavíte událost dokončení úkolu, budou všechny úkoly vytvořené z této události okamžitě dokončeny a její pokračování( pokud existuje). Objekty dokončení úkolu, které mají jinou _ResultType
hodnotu než void
budou předávat jejich pokračování.
set_exception
Rozšíří výjimku na všechny úkoly přidružené k této události.
template<typename _E>
__declspec(noinline) bool set_exception(_E _Except) const;
__declspec(noinline) bool set_exception(std::exception_ptr _ExceptionPtr) const ;
Parametry
_E
Typ výjimky.
_Kromě
Výjimka, která se má nastavit.
_ExceptionPtr
Ukazatel výjimky, který se má nastavit.
Návratová hodnota
task_completion_event
task_completion_event
Vytvoří objekt.
task_completion_event();