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
událost_dokončení_úkolu Konstruuje objekt task_completion_event.

Veřejné metody

Název Popis
nastavit 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í. Úloha task_completion_event musí 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 poskytne tuto hodnotu jako výsledek jeho pokračováním.

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

Obor názvů: souběžnost

set

Nastaví událost dokončení úkolu.

bool set(_ResultType _Result) const ;

bool set() const ;

Parametry

_Výsledek
Výsledek, který má být použit 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, všechny úkoly vytvořené z této akce budou okamžitě dokončeny a jejich pokračování, pokud existují, budou naplánována. Objekty dokončení úkolu, které mají jinou _ResultType hodnotu než void, předají hodnotu svým pokračováním.

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

událost_dokončení_úkolu

Konstruuje objekt task_completion_event.

task_completion_event();

Viz také

concurrency – obor názvů