when_any – funkce
Vytvoří úlohu, která bude dokončena úspěšně, pokud bude některá z úloh uvedených jako argumenty úspěšně dokončena.
template<
typename _Iterator
>
auto when_any(
_Iterator_Begin,
_Iterator_End,
const task_options& _TaskOptions = task_options()
) -> decltype (details::_WhenAnyImpl<typename std::iterator_traits<_Iterator>::value_type::result_type, _Iterator>::_Perform(_TaskOptions, _Begin, _End));
template<
typename _Iterator
>
auto when_any(
_Iterator_Begin,
_Iterator_End,
cancellation_token _CancellationToken
) -> decltype (details::_WhenAnyImpl<typename std::iterator_traits<_Iterator>::value_type::result_type, _Iterator>::_Perform(_CancellationToken._GetImplValue(), _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
_CancellationToken
Token rušení, který řídí zrušení vrácených úloh.Pokud nezadáte token zrušení, výsledná úloha obdrží token zrušení úlohy, který způsobí její dokončení.
Vrácená hodnota
Úkol, který se úspěšně dokončí, když některý vstupní úkol proběhne úspěšně.Pokud jsou vstupní úlohy typu T, výstup této funkce bude task<std::pair<T, size_t>>>, kde první prvek dvojice je výsledkem dokončující úlohy a druhý prvek je indexem dokončené úlohy.Pokud jsou vstupní úlohy typu void, výstup je task<size_t>, kde výsledkem je index dokončující úlohy.
Poznámky
when_any 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).
Další informace naleznete v tématu Funkční paralelismus (Concurrency Runtime).
Požadavky
Záhlaví: ppltasks.h
Obor názvů: souběžnost