Classe task_handle
La classe task_handle rappresenta un elemento di lavoro parallelo individuale.Incapsula le istruzioni e i dati richiesti per eseguire un lavoro.
template<
typename _Function
>
class task_handle : public ::Concurrency::details::_UnrealizedChore;
Parametri
- _Function
Tipo dell'oggetto funzione che sarà richiamato per eseguire il lavoro rappresentato dall'oggetto task_handle.
Membri
Costruttori pubblici
Nome |
Descrizione |
---|---|
Costruisce un nuovo oggetto task_handle.Il lavoro dell'attività viene eseguito richiamando la funzione specificata come parametro per il costruttore. |
|
Elimina l'oggetto task_handle. |
Operatori pubblici
Nome |
Descrizione |
---|---|
Operatore della chiamata di funzione che il runtime richiama per eseguire il lavoro dell'handle delle attività. |
Note
Gli oggetti task_handle possono essere utilizzati insieme a structured_task_group o a un oggetto task_group più generico, per decomporre un lavoro in attività parallele.Per ulteriori informazioni, vedere Parallelismo delle attività (runtime di concorrenza).
Notare che l'autore di un oggetto task_handle è responsabile per la gestione della durata dell'oggetto task_handle creato fino a quando non è più richiesto dal runtime di concorrenza.In genere, significa che l'oggetto task_handle non deve distruggere finché non è stato chiamato il metodo wait o run_and_wait del task_group o structured_task_group per cui è messo in coda.
Gli oggetti task_handle vengono utilizzati in genere con lambda C++.Poiché non si conosce il vero tipo del lambda, la funzione make_task viene generalmente utilizzata per creare l'oggetto task_handle.
Il runtime crea una copia della funzione lavoro passata all'oggetto task_handle.Le modifiche di stato che si verificano in un oggetto funzione passato a un oggetto task_handle non saranno visualizzati nella copia dell'oggetto funzione.
Gerarchia di ereditarietà
task_handle
Requisiti
Header: ppl.h
Concorrenza diSpazio dei nomi:
Vedere anche
Riferimenti
Metodo task_group::run_and_wait
Metodo structured_task_group::run