Condividi tramite


Metodo structured_task_group::run_and_wait

Consente di pianificare un'attività in esecuzione inline sul contesto di chiamata con l'assistenza dell'oggetto structured_task_group per il completo supporto di annullamento. Se un oggetto task_handle viene passato come parametro run_and_wait, il chiamante è responsabile della gestione della durata dell'oggetto task_handle. La funzione attende pertanto fino al completamento o all'annullamento di tutto il lavoro sull'oggetto structured_task_group.

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
    Tipo dell'oggetto funzione che sarà richiamato per eseguire il corpo del handle delle 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 lambda o un altro oggetto che supporti 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 structured_task_group possono essere eseguite inline nel contesto di chiamata.

Se una o più attività pianificate su questo oggetto structured_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.

Una volta questa funzione viene restituita, l'oggetto structured_task_group è considerato in uno stato finale e non deve essere utilizzato. Notare che l'uso dopo i ritorni del metodo run_and_wait risulterà in un comportamento indefinito.

Nel percorso di esecuzione non eccezionale, si dispone di un mandato per chiamare questo metodo o il metodo wait prima che il distruttore di structured_task_group venga eseguito.

Requisiti

Header: ppl.h

Spazio dei nomi: Concurrency

Vedere anche

Riferimenti

Classe structured_task_group

Metodo structured_task_group::run

Metodo structured_task_group::wait

Concetti

Parallelismo delle attività (runtime di concorrenza)