Partager via


when_any, fonction

Crée une tâche qui s'effectue correctement lorsque n'importe quelle tâche fournie comme arguments s'achève correctement.

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

Paramètres

  • _Iterator
    Type de l'itérateur d'entrée.

  • _Begin
    Position du premier élément dans la plage d'éléments à combiner dans la tâche obtenue.

  • _End
    Position du premier élément au-delà de la plage d'éléments à combiner dans la tâche obtenue.

  • _TaskOptions

  • _CancellationToken
    Jeton d'annulation qui contrôle l'annulation de la tâche retournée. Si vous ne fournissez pas de jeton d'annulation, la tâche résultante recevra le jeton d'annulation de la tâche qui provoque sa fin.

Valeur de retour

Une tâche qui se termine correctement lorsque l'une des tâches d'entrée se termine avec succès. Si les tâches d'entrée sont de type T, la sortie de cette fonctionnalité est task<std::pair<T, size_t>>>, où le premier élément de la paire est le résultat de la tâche qui se termine, et le deuxième élément est l'index de la tâche qui s'est terminée. Si les tâches d'entrée sont de type void, la sortie est task<size_t>, où le résultat est l'index de la tâche s'achève.

Notes

when_any est une fonction non bloquante qui produit une task comme résultat. Contrairement à task::wait, il est possible d'appeler cette fonction dans une application Windows Store sur le thread ASTA (application STA).

Pour plus d'informations, consultez Parallélisme des tâches (runtime d'accès concurrentiel).

Configuration requise

En-tête : ppltasks.h

Espace de noms : concurrency

Voir aussi

Référence

concurrency, espace de noms

Concepts

Parallélisme des tâches (runtime d'accès concurrentiel)