Condividi tramite


Funzione when_any

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

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

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

  • _CancellationToken
    Il token di annullamento che controlla l'annullamento dell'attività restituita. Se non si fornisce un token di annullamento, all'attività risultante verrà inviato il relativo token di annullamento che ne comporterà il completamento.

Valore restituito

Attività che viene completata correttamente quando una qualsiasi delle attività di input è stata completata. Se le attività di input sono di tipo T, l'output di questa funzione sarà un oggetto task<std::pair<T, size_t>>>, dove il primo elemento della coppia è il risultato dell'attività di completamento e il secondo elemento è l'indice dell'attività completata. Se le attività di input sono di tipo void, l'output è un oggetto task<size_t>, dove il risultato è l'indice dell'attività di completamento.

Note

when_any è 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).

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)