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
命名空间: 并发