when_all 函数 (C++ REST SDK)

创建一个任务,在作为参数提供的所有任务成功完成后,此任务将成功完成。

警告

本主题包含有关 C++ REST SDK 1.0 (codename "Casablanca") 的信息。如果你正在从 Codeplex Casablanca 网页 使用更高版本,则使用 http://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));

参数

  • _Iterator
    输入迭代器的类型。

  • _Begin
    要合并到结果任务的元素范围中第一个元素的位置。

  • _End
    超出要合并到结果任务的元素范围的第一个元素的位置。

  • _TaskOptions

返回值

将在所有输入任务成功完成后成功完成的任务。 如果输入任务的类型为 T,则此函数的输出将为 task<std::vector<T>>。 如果输入任务的类型为 void,则输出任务也将是 task<void>

备注

如果其中一个任务被取消或引发异常,则返回的任务将提前完成(处于已取消状态),并且,如果您对该任务调用 get()wait(),则在遇到异常的情况下将会引发异常。

要求

**标头:**pplxtasks.h

**命名空间:**pplx

请参见

参考

pplx 命名空间

概念

任务并行(并发运行时)