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
    輸入 Iterator 類型。

  • _Begin
    在合併成產生的工作項目範圍中第一個項目的位置。

  • _End
    合併成產生的工作項目的範圍外的第一個元素的位置。

  • _CancellationToken
    用來控制傳回工作取消取消語彙基元。如果沒有提供取消語彙基元,產生的工作就會收到取消通知語彙基元,工具會使完成的工作。

傳回值

這種工作可順利完成當其中一種輸入工作已順利完成。如果輸入的工作都屬於型別T,此函式的輸出會是task<std::pair<T, size_t>>>、 其中組的第一個項目是 「 完成 」 工作的結果,而第二個元素是完成任務的索引。如果輸入的工作都屬於型別void而輸出則是task<size_t>,其中結果會是 「 完成 」 工作的索引。

需求

標頭: ppltasks.h

Namespace: 並行存取

請參閱

參考

concurrency 命名空間

概念

工作平行處理原則 (並行執行階段)