Partager via


when_all, fonction

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

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

template <
   typename _Iterator
>
auto when_all(
   _Iterator_Begin,
   _Iterator_End,
   cancellation_token _CancellationToken
) -> decltype (details::_WhenAllImpl<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
    La position du premier élément de la plage des éléments à combiner dans la tâche résultant.

  • _End
    La position du premier élément au delà de la plage d'éléments à combiner dans la tâche résultant.

  • _CancellationToken
    Le 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 sera créée avec un jeton qui est une combinaison de tous les jetons annulables (jetons créés par les méthodes autres que **cancellation_token::none()**des tâches fournies.

Valeur de retour

Une tâche qui se termine correctement lorsque toutes les tâches d'entrée ne sont pas terminées avec succès.Si les tâches d'entrée sont de type T, la sortie de cette fonctionnalité 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

Si l'une des tâches est annulée ou lève une exception, la tâche retournée s'achève avant, dans l'état d'annulation, et l'exception, si une encoutered, sera levée si vous appelez get() ou wait() dans cette tâche.

Configuration requise

en-tête : ppltasks.h

Accès concurrentiel del'espace de noms :

Voir aussi

Référence

concurrency, espace de noms

Concepts

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