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: 並行存取