Share via


when_all-Funktion

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

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

Parameter

  • _Iterator
    Der Typ des Eingabeiterators.

  • _Begin
    Die Position des ersten Elements in dem Bereich von Elementen, die mit der resultierenden Aufgabe kombiniert werden sollen.

  • _End
    Die Position des ersten Elements hinter dem Bereich von Elementen, die mit der resultierenden Aufgabe kombiniert werden sollen.

  • _TaskOptions

Rückgabewert

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

Hinweise

when_all ist eine nicht blockierende Funktion, die task als Ergebnis erzeugt. Anders als bei task::wait ist es sicher, diese Funktion in einer Windows Store-App auf dem ASTA-(Application STA-)Thread aufzurufen.

Wenn eine der Aufgaben abgebrochen wird oder eine Ausnahme auslöst, wird die zurückgegebene Aufgabe früh im abgebrochenen Zustand abgeschlossen, und die Ausnahme, sofern sie auftritt, wird ausgelöst, wenn Sie task::get oder task::wait für diese Aufgabe aufrufen.

Weitere Informationen finden Sie unter Aufgabenparallelität (Concurrency Runtime).

Anforderungen

Header: ppltasks.h

Namespace: Parallelität

Siehe auch

Referenz

concurrency-Namespace

Konzepte

Aufgabenparallelität (Concurrency Runtime)