Compartir a través de


when_any (Función)

Crea una tarea que se completará correctamente cuando cualquiera de las tareas proporcionadas como argumentos se complete correctamente.

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));

Parámetros

  • _Iterator
    Tipo de iterador de entrada.

  • _Begin
    Posición del primer elemento del intervalo de elementos que se va a combinar en la tarea resultante.

  • _End
    Posición del primer elemento que supera el intervalo de elementos que se va a combinar en la tarea resultante.

  • _TaskOptions

  • _CancellationToken
    El token de cancelación que controla la cancelación de la tarea devuelta. Si no proporciona ningún token de cancelación, la tarea resultante recibirá el token de cancelación de la tarea que causa su finalización.

Valor devuelto

Tarea que se completa correctamente cuando una de las tareas de entrada se completó correctamente. Si las tareas de entrada son del tipo T, el resultado de esta función será task<std::pair<T, size_t>>>, donde el primer elemento del par será el resultado de la tarea que finaliza y el segundo elemento será el índice de la tarea que terminó. Si las tareas de entrada son del tipo void, la salida será task<size_t>, donde el índice es el resultado de la tarea que finaliza.

Comentarios

when_any es una función sin bloqueos que produce task como resultado. A diferencia de task::wait, es seguro llamar a esta función en una aplicación Tienda Windows en el subproceso de ASTA (aplicación STA).

Para obtener más información, vea Paralelismo de tareas (Runtime de simultaneidad).

Requisitos

Encabezado: ppltasks.h

Espacio de nombres: simultaneidad

Vea también

Referencia

concurrency (Espacio de nombres)

Conceptos

Paralelismo de tareas (Runtime de simultaneidad)