Compartir a través de


when_all (Función)

Crea una tarea que se completará correctamente cuando todas las tareas proporcionadas como argumentos se completen correctamente.

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

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

Valor devuelto

Tarea que se completa correctamente cuando todas las tareas de entrada se completan correctamente. Si las tareas de entrada son de tipo T, el resultado de esta función será task<std::vector<T>>. Si las tareas de entrada son del tipo void, la tarea de salida también será task<void>.

Comentarios

when_all 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).

Si una de las tareas se cancela o produce una excepción, la tarea devuelta finalizará pronto, con el estado cancelado y se generará una excepción, en caso de que esta se encuentre, al llamar a task::get o task::wait en dicha tarea.

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)