Freigeben über


when_all-Funktion

Erstellt eine Aufgabe, die erfolgreich abgeschlossen wird, wenn alle Aufgaben, die als Argumente angegeben werden, erfolgreich abgeschlossen werden.

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

Parameter

  • _Iterator
    Der Typ des Eingabeiterators.

  • _Begin
    Die Position des ersten Elements im Elementebereich, in die resultierende Aufgabe kombiniert werden.

  • _End
    Die Position des ersten Elements im Elementebereich hinaus in die resultierende Aufgabe kombiniert werden.

  • _CancellationToken
    Das Abbruchtoken, das den Abbruch der zurückgegebenen Aufgabe steuert.Wenn Sie kein Abbruchtoken bereitgestellt wird, wird die resultierende Aufgabe mit einem Token erstellt wird, die eine Kombination aller abbrechbaren Token ist (die Token erstellt von Methoden außer cancellation_token::none() der Aufgaben angegeben.

Rückgabewert

Eine Aufgabe, die erfolgreich abgeschlossen wird, wenn alle Aufgaben Eingabe erfolgreich abgeschlossen wurden.Wenn die Eingabe Aufgaben vom Typ T sind, ist die Ausgabe dieser Funktion task<std::vector<T>>.Wenn die Eingabe Aufgaben vom Typ void sind, ist die Ausgabe aufgabe auch task<void>.

Hinweise

Wenn eine der Aufgaben abgebrochen wurde oder eine Ausnahme auslöst wird, enthält die zurückgegebene Aufgabe zu einem frühen Zeitpunkt im abgebrochenen Zustand ab. Die Ausnahme, falls encoutered, wird ausgelöst, wenn Sie get() oder wait() in dieser Aufgabe aufrufen.

Anforderungen

Header: ppltasks.h

Namespace: Parallelität

Siehe auch

Referenz

concurrency-Namespace

Konzepte

Aufgabenparallelität (Concurrency Runtime)