Metodo task_group::run_and_wait
Consente di pianificare un'attività in esecuzione inline sul contesto di chiamata con l'assistenza dell'oggetto task_group per il completo supporto di annullamento.La funzione attende pertanto fino al completamento o all'annullamento di tutto il lavoro sull'oggetto task_group.Se un oggetto task_handle viene passato come parametro run_and_wait, il chiamante è responsabile della gestione della durata dell'oggetto task_handle.
template<
class _Function
>
task_group_status run_and_wait(
task_handle<_Function>& _Task_handle
);
template<
class _Function
>
task_group_status run_and_wait(
const _Function& _Func
);
Parametri
_Function
Il tipo dell'oggetto funzione che verrà richiamato per eseguire il corpo dell'attività._Task_handle
Un handle all'attività che sarà in esecuzione inline nel contesto di chiamata.Notare che il chiamante ha la responsabilità della durata del oggetto.Il runtime continuerà a prevedere di esistere finché il metodo run_and_wait non termina l'esecuzione._Func
Una funzione che sarà chiamata per richiamare il corpo del lavoro.Potrebbe essere un'espressione lambda o un altro oggetto che supporta una versione dell'operatore di chiamata di funzione con la firma void operator()().
Valore restituito
Indicazione se l'attesa è stata soddisfatta o se il gruppo di attività è stato annullato, a causa di un'esplicita operazione di annullamento o di un'eccezione generata da una delle attività.Per ulteriori informazioni, vedere Stato gruppo di attività.
Note
Notare che una o più attività pianificate su questo oggetto task_group possono essere eseguite inline nel contesto di chiamata.
Se una o più attività pianificate su questo oggetto task_group generano un'eccezione, il runtime selezionerà un'eccezione di questo tipo a scelta e la propagherà dalla chiamata al metodo run_and_wait.
Alla restituzione da parte del metodo run_and_wait su un oggetto task_group, il runtime reimposta l'oggetto a uno stato originale in cui poter essere riutilizzato.Include il caso in cui è stato annullato l'oggetto task_group.
Nel percorso di esecuzione non eccezionale, si dispone di un mandato per chiamare questo metodo o il metodo wait prima che il distruttore di task_group venga eseguito.
Requisiti
Header: ppl.h
Concorrenza diSpazio dei nomi: