Udostępnij za pośrednictwem


when_any — Funkcja

Tworzy zadanie, które zostanie ukończone pomyślnie, gdy dowolne zadania dostarczone jako argumenty zakończą się pomyślnie.

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 iteratora wejściowego.

  • _Begin
    Pozycja pierwszego elementu w zakresie elementów, które można połączyć w zadanie wynikowe.

  • _End
    Pozycja pierwszego elementu poza zakresem elementów, które można połączyć w zadanie wynikowe.

  • _TaskOptions

  • _CancellationToken
    Token anulowania, który steruje anulowaniem zadania zwróconego.Jeśli token anulowania nie zostanie określony, wynikowe zadanie otrzyma token anulowania zadania, które powoduje jego ukończenie.

Wartość zwracana

Zadanie, które zostaje wykonane pomyślnie, jeśli dowolne jedno z zadań wejściowych zostaje wykonane pomyślnie.Jeśli zadania wejściowe są typu T, danymi wyjściowymi tej funkcji będą task<std::pair<T, size_t>>>, gdzie pierwszy element pary jest wynikiem ukończenia zadania, a drugi element jest indeksem zakończonego zadania.Jeśli zadania wejściowe są typu void, danymi wyjściowymi są task<size_t>, gdzie wynik jest indeksem kończonego zadania.

Uwagi

when_any jest funkcją bez blokowania, która wytwarza task i jej wynik.W przeciwieństwie do task::wait, można bezpiecznie wywołać tę funkcję w aplikacji Windows Store w wątku ASTA (Aplikacja STA).

Aby uzyskać więcej informacji, zobacz Równoległość zadania (współbieżność środowiska wykonawczego).

Wymagania

Nagłówek: ppltasks.h

Przestrzeń nazw: concurrency

Zobacz też

Informacje

concurrency — Przestrzeń nazwy

Koncepcje

Równoległość zadania (współbieżność środowiska wykonawczego)