Condividi tramite


Funzione when_all

Crea un'attività che verrà completata correttamente quando tutte le attività fornite come argomenti verranno completate correttamente.

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

Parametri

  • _Iterator
    Tipo di iteratore di input.

  • _Begin
    La posizione del primo elemento nell'intervallo di elementi da combinare nell'attività risultante.

  • _End
    La posizione del primo elemento oltre l'intervallo di elementi da combinare nell'attività risultante.

  • _TaskOptions

Valore restituito

Attività che viene completata correttamente quando tutte le attività di input sono state completata. Se le attività di input sono di tipo T, l'output di questa funzione sarà un oggetto task<std::vector<T>>. Se le attività di input sono di tipo void, anche l'attività di output sarà un oggetto task<void>.

Note

when_all è una funzione non bloccante che produce task come risultato. A differenza di task::wait, è opportuno chiamare questa funzione in un'applicazione Windows Store nel thread ASTA (Application STA).

Se una delle attività viene annullata o viene generata un'eccezione, l'attività restituita verrà completata in anticipo, nello stato annullato, e l'eccezione, se ne è presente una, verrà generata in caso di chiamata a task::get o task::wait sull'attività in questione.

Per ulteriori informazioni, vedere Parallelismo delle attività (runtime di concorrenza).

Requisiti

Intestazione: ppltasks.h

Spazio dei nomi: concorrenza

Vedere anche

Riferimenti

Spazio dei nomi concurrency

Concetti

Parallelismo delle attività (runtime di concorrenza)