다음을 통해 공유


when_any 함수

인수로 제공된 작업 중 하나라도 성공적으로 완료될 경우 완료되는 작업을 만듭니다.

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

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

매개 변수

  • _Iterator
    입력 반복기의 형식입니다.

  • _Begin
    결과 작업으로 결합되는 요소 범위 내 첫 번째 요소의 위치입니다.

  • _End
    결과 작업으로 결합되는 요소 범위를 벗어나는 첫 번째 요소의 위치입니다.

  • _TaskOptions

  • _CancellationToken
    반환된 작업의 취소를 제어하는 취소 토큰입니다. 취소 토큰이 없는 경우 결과 작업은 작업을 완료시키는 작업 취소 토큰을 받습니다.

반환 값

입력 작업 중 하나가 성공적으로 완료되는 경우 완료되는 작업입니다. 입력 작업에 형식T이 있는 경우 해당 쌍의 첫 번째 요소가 완료 중인 작업의 결과가 되고 두 번째 요소가 완료된 작업의 인덱스가 되는 지점에서 해당 함수의 출력은 **task<std::pair<T, size_t>>>**가 됩니다. 입력 작업이 형식 void인 경우 출력은 **task<size_t>**로 여기서 결과는 완료 중인 작업의 인덱스입니다.

설명

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

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

요구 사항

헤더: ppltasks.h

네임스페이스: 동시성

참고 항목

참조

동시성 네임스페이스

개념

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