Partager via


when_all, fonction

Crée une tâche qui s'effectue correctement lorsque toutes les tâches fournies comme arguments s'achèvent correctement.

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

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

Valeur de retour

Une tâche qui se termine correctement lorsque toutes les tâches d'entrée se terminent avec succès. Si les tâches d'entrée sont de type T, la sortie de cette fonction est task<std::vector<T>>. Si les tâches d'entrée sont de type void, la tâche de sortie sera également task<void>.

Notes

when_all 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).

Si une des tâches est annulée ou lève une exception, la tâche retournée se terminera prématurément à l'état Annulé, et l'exception, s'il y en a une, sera levée si vous appelez task::get ou task::wait pour cette tâche.

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)