Поделиться через


Функция when_all

Создает задачу, завершается успешно, если все задачи, переданные в качестве аргументов завершены успешно.

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

Параметры

  • _Iterator
    Тип итератора ввода.

  • _Begin
    Положение первого элемента в диапазоне элементов следует объединить в итоговом задачу.

  • _End
    Позиция первого элемента после конца диапазона элементов следует объединить в итоговом задачу.

  • _CancellationToken
    Токен отмены, который контролирует отмену возвращенной задачи.Если не предоставить токен отмены, то результирующее задача будет создана с токеном, который является сочетанием все токены (токены могут быть отменены для создания методов за исключением cancellation_token::none() предоставленных задач.

Возвращаемое значение

Задача, которая завершается успешно, когда все задачи ввода были завершены успешно.Если задача ввода типа T, то выходные данные этой функции будет task<std::vector<T>>.Если задача ввода типа void, то задача вывода также будет task<void>.

Заметки

Если отменить или вызывает задач исключение, возвращаемая задача завершается раньше в отмененном состоянии и исключение, если он encoutered, то создается при вызове get() или wait() в этой задаче.

Требования

заголовок: ppltasks.h

Параллелизм пространство имен:

См. также

Ссылки

Пространство имен concurrency

Основные понятия

Параллелизм задач (среда выполнения с параллелизмом)