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

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

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

  • _CancellationToken
    用來控制傳回工作取消取消語彙基元。如果您不提供取消語彙基元,產生的工作將會建立可取消的語彙基元組成語彙基元 (而非由方法的語彙基元**cancellation_token::none()**所提供的工作。

傳回值

完成成功時的所有輸入的工作已成功地完成工作。如果輸入的工作都屬於型別T,此函式的輸出會是task<std::vector<T>>。如果輸入的工作都屬於型別void 「 輸出 」 工作也會task<void>

備註

如果其中一個工作卻遭取消或擲回例外狀況,傳回的工作已取消狀態而定的早期階段,將會完成,而例外狀況,如果有發生時,會擲回如果您呼叫**get()wait()**上該任務。

需求

標頭: ppltasks.h

Namespace: 並行存取

請參閱

參考

concurrency 命名空間

概念

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