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)