Udostępnij za pośrednictwem


when_all — Funkcja

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

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 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

Wartość zwracana

Zadanie, które zostaje wykonane pomyślnie, jeśli wszystkie zadania wejściowe zostają wykonane pomyślnie.Jeśli zadania wejściowe są typu T, danymi wyjściowymi tej funkcji będą task<std::vector<T>>.Jeśli zadania wejściowe są typu void, zadaniem wyjściowym też będzie task<void>.

Uwagi

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

Jeśli jedno z zadań zostanie anulowane lub zgłasza wyjątek, zwrócone zadanie zostanie ukończone przedwcześnie ze stanem Anulowane, a wyjątek, jeśli wystąpi, zostanie zgłoszony, jeśli wywołasz funkcję task::get lub task::wait dla tego zadania.

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)