when_all – funkce
Vytvoří úlohu, která bude dokončena úspěšně, pokud budou všechny úlohy uvedené jako argumenty úspěšně dokončeny.
template <
typename _Iterator
>
auto when_all(
_Iterator_Begin,
_Iterator_End,
const task_options& _TaskOptions = task_options()
) -> decltype (details::_WhenAllImpl<typename std::iterator_traits<_Iterator>::value_type::result_type, _Iterator>::_Perform(_TaskOptions, _Begin, _End));
Parametry
_Iterator
Typ vstupního iterátoru._Begin
Pozice prvního prvku v rozsahu prvků se zkombinuje do výsledného úkolu._End
Pozice prvního prvku mimo rozsah prvků se zkombinuje do výsledného úkolu._TaskOptions
Vrácená hodnota
Úkol, který se úspěšně dokončí, když všechny vstupní úkoly proběhnou úspěšně.Pokud jsou vstupní úlohy typu T, výstup této funkce bude task<std::vector<T>>.Pokud jsou vstupní úlohy typu void, výstupní úloha bude také task<void>.
Poznámky
when_all je neblokující funkce, která vytváří task jako výsledek.Na rozdíl od úlohy task::wait je bezpečné volat tuto funkci v aplikaci Windows Store vlákna ASTA (Application STA).
Je-li jeden z úkolů zrušen nebo vyvolá výjimku, vrácené úlohy budou dokončeny včas ve zrušeném stavu a při volání task::get nebo task::wait pro tento úkol bude vyvolána výjimka (jestliže k ní došlo).
Další informace naleznete v tématu Funkční paralelismus (Concurrency Runtime).
Požadavky
Záhlaví: ppltasks.h
Obor názvů: souběžnost