다음을 통해 공유


when_all 함수

인수로 제공된 모든 작업이 성공적으로 완료될 경우 완료되는 작업을 만듭니다.

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>**가 됩니다.

설명

when_all는 해당 결과로 task를 생성하는 비차단 함수입니다. task::wait와 다르게 ASTA(응용 프로그램 STA) 스레드에 대한 Windows 스토어 응용 프로그램에서 이 함수를 호출하는 것이 안전합니다.

작업 중 하나가 취소되거나 예외를 throw하는 경우 반환된 작업은 취소된 상태로 일찍 완료되며 task::get 또는 task::wait를 호출하면 예외(발생한 경우)가 throw됩니다.

자세한 내용은 작업 병렬 처리(동시성 런타임)을 참조하십시오.

요구 사항

헤더: ppltasks.h

네임스페이스: 동시성

참고 항목

참조

동시성 네임스페이스

개념

작업 병렬 처리(동시성 런타임)