when_any-Funktion
Erstellt eine Aufgabe, die erfolgreich abgeschlossen wird, wenn eine der als Argumente angegeben Aufgaben erfolgreich abgeschlossen wird.
template<
typename _Iterator
>
auto when_any(
_Iterator_Begin,
_Iterator_End,
const task_options& _TaskOptions = task_options()
) -> decltype (details::_WhenAnyImpl<typename std::iterator_traits<_Iterator>::value_type::result_type, _Iterator>::_Perform(_TaskOptions, _Begin, _End));
template<
typename _Iterator
>
auto when_any(
_Iterator_Begin,
_Iterator_End,
cancellation_token _CancellationToken
) -> decltype (details::_WhenAnyImpl<typename 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 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
_CancellationToken
Das Abbruchtoken, das den Abbruch der zurückgegebenen Aufgabe steuert. Wenn Sie kein Abbruchtoken bereitstellen, erhält die resultierende Aufgabe das Abbruchtoken der Aufgabe, die ihren Abschluss verursacht.
Rückgabewert
Eine Aufgabe, die erfolgreich abgeschlossen ist, wenn eine der Eingabeaufgaben erfolgreich abgeschlossen wurde. Wenn die Eingabeaufgaben vom Typ T sind, ist die Ausgabe dieser Funktion task<std::pair<T, size_t>>>, wobei das erste Element des Paares das Ergebnis der letzten Aufgabe ist, und das zweite Element der Index der beendeten Aufgabe. Wenn die Eingabeaufgaben vom Typ void sind, ist die Ausgabe task<size_t>, wobei das Ergebnis der Index der abgeschlossenen Aufgabe ist.
Hinweise
when_any 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.
Weitere Informationen finden Sie unter Aufgabenparallelität (Concurrency Runtime).
Anforderungen
Header: ppltasks.h
Namespace: Parallelität