Функция 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
Параллелизм пространство имен: