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)