Sdílet prostřednictvím


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

Viz také

Referenční dokumentace

concurrency – obor názvů

Koncepty

Funkční paralelismus (Concurrency Runtime)