Udostępnij za pośrednictwem


Funkcja when_all

Tworzy zadanie, które zostanie zakończona pomyślnie, gdy pomyślnego wykonania wszystkich zadań, podane jako argumenty.

template <
   typename _Iterator
>
auto when_all(
   _Iterator_Begin,
   _Iterator_End
) -> decltype (details::_WhenAllImpl<std::iterator_traits<_Iterator>::value_type::result_type, _Iterator>::_Perform(nullptr, _Begin, _End));

template <
   typename _Iterator
>
auto when_all(
   _Iterator_Begin,
   _Iterator_End,
   cancellation_token _CancellationToken
) -> decltype (details::_WhenAllImpl<std::iterator_traits<_Iterator>::value_type::result_type, _Iterator>::_Perform(_CancellationToken._GetImplValue(), _Begin, _End));

Parametry

  • _Iterator
    Typ wejściowy iteratora.

  • _Begin
    Pozycja pierwszego elementu w zakresie elementów do połączenia w wynikowym zadania.

  • _End
    Pozycja pierwszego elementu poza zakres elementów do połączenia w wynikowym zadania.

  • _CancellationToken
    Anulowanie token, który kontroluje anulowanie zadania zwracane.Jeśli nie podasz token anulowania, wynikowy zadanie zostanie utworzone z tokenu, który jest kombinacją cancelable tokeny (tokeny utworzone za pomocą metod innych niż **cancellation_token::none()**zadań dostarczone.

Wartość zwracana

Zadanie, które uzupełnia pomyślnie, gdy wszystkie wprowadzania zadania zostały wykonane pomyślnie.Jeśli są zadania wejściowego typu T, dane wyjściowe z tej funkcji będą task<std::vector<T>>.Jeśli są zadania wejściowego typu void zadanie dane wyjściowe będą również task<void>.

Uwagi

Jeśli jedno z zadań zostało anulowane lub zgłasza wyjątek, zwracane zadanie zakończy się wcześnie, w stanie anulowane i, jeśli jest encoutered, zostanie wywołany rozmowy get() lub wait() dla tego zadania.

Wymagania

Nagłówek: ppltasks.h

Obszar nazw: współbieżności

Zobacz też

Informacje

Współbieżność obszaru nazw

Koncepcje

Zadanie równoległości (współbieżności Runtime)