Sdílet prostřednictvím


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í setbude ú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();

Viz také

concurrency – obor názvů