when_any 函数

创建将成功完成的任务,并以参数中提供的任何任务成功完成。

template<
   typename _Iterator
>
auto when_any(
   _Iterator_Begin,
   _Iterator_End
) -> decltype (details::_WhenAnyImpl<std::iterator_traits<_Iterator>::value_type::result_type, _Iterator>::_Perform(nullptr, _Begin, _End));

template<
   typename _Iterator
>
auto when_any(
   _Iterator_Begin,
   _Iterator_End,
   cancellation_token _CancellationToken
) -> decltype (details::_WhenAnyImpl<std::iterator_traits<_Iterator>::value_type::result_type, _Iterator>::_Perform(_CancellationToken._GetImplValue(), _Begin, _End));

参数

  • _Iterator
    输入迭代器的类型。

  • _Begin
    第一个元素的位置在要合并的元素范围内到所生成的任务。

  • _End
    第一个元素的位置在要合并的元素范围的到所生成的任务。

  • _CancellationToken
    控件返回的任务取消的取消标记。 如果未提供一个取消标记,发生的任务将接收原因完成的该任务的取消标记。

返回值

成功完成任务,则任何一个输入任务成功完成。 如果输入任务的类型为 T,此功能输出将为 task<std::pair<T, size_t>>>,对的第一个元素是完成的任务的结果,因此,第二个元素是完成任务的索引。 如果输入任务的类型为 void 输出是 task<size_t>,则结果是完成的任务的索引。

要求

标题: ppltasks.h

命名空间: 并发

请参见

参考

concurrency 命名空间

概念

任务并行(并发运行时)