when_all Function (C++ REST SDK)

Creates a task that will complete successfully when all of the tasks supplied as arguments complete successfully.

Warning

This topic contains information for the C++ REST SDK 1.0 (codename "Casablanca"). If you are using a later version from the Codeplex Casablanca web page, then use the local documentation at https://casablanca.codeplex.com/documentation.

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

Parameters

  • _Iterator
    The type of the input iterator.

  • _Begin
    The position of the first element in the range of elements to be combined into the resulting task.

  • _End
    The position of the first element beyond the range of elements to be combined into the resulting task.

  • _TaskOptions

Return Value

A task that completes sucessfully when all of the input tasks have completed successfully. If the input tasks are of type T, the output of this function will be a task<std::vector<T>>. If the input tasks are of type void the output task will also be a task<void>.

Remarks

If one of the tasks is canceled or throws an exception, the returned task will complete early, in the canceled state, and the exception, if one is encoutered, will be thrown if you call get() or wait() on that task.

Requirements

Header: pplxtasks.h

Namespace: pplx

See Also

Reference

pplx Namespace

Concepts

Task Parallelism (Concurrency Runtime)