Freigeben über


when_any-Funktion

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

template<
   typename _Iterator
>
auto when_any(
   _Iterator_Begin,
   _Iterator_End
) -> decltype (details::_WhenAnyImpl<std::iterator_traits<_Iterator>::value_type::result_type, _Iterator>::_Perform(nullptr, _Begin, _End));

template<
   typename _Iterator
>
auto when_any(
   _Iterator_Begin,
   _Iterator_End,
   cancellation_token _CancellationToken
) -> decltype (details::_WhenAnyImpl<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, erhält die resultierende Aufgabe das Abbruchtoken Abschließen der Aufgabe, die Ursachen.

Rückgabewert

Eine Aufgabe, die erfolgreich abgeschlossen wird, wenn eine der Eingabe Aufgaben erfolgreich abgeschlossen wurde.Wenn die Eingabe Aufgaben vom Typ T sind, ist die Ausgabe dieser Funktion task<std::pair<T, size_t>>>, wobei das erste Element des Paars das Ergebnis der abschließenden Aufgabe ist, und das zweite Element der Index der Aufgabe, die beendet wurde.Wenn die Eingabe Aufgaben vom Typ void sind, ist die Ausgabe task<size_t>, in dem das Ergebnis der Index der abschließenden Aufgabe wurde.

Anforderungen

Header: ppltasks.h

Namespace: Parallelität

Siehe auch

Referenz

concurrency-Namespace

Konzepte

Aufgabenparallelität (Concurrency Runtime)