Condividi tramite


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

Oggetto di descrizione

Costruttore task_handle::task_handle

Costruisce un nuovo oggetto task_handle. Il lavoro dell'attività viene eseguito richiamando la funzione specificata come parametro per il costruttore.

Distruttore task_handle::~task_handle

Elimina l'oggetto task_handle.

Operatori pubblici

Nome

Oggetto di descrizione

Operatore task_handle::operator()

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à

_Chore

_AllocBase

_UnrealizedChore

task_handle

Requisiti

Header: ppl.h

Spazio dei nomi: Concurrency

Vedere anche

Riferimenti

Spazio dei nomi Concurrency

Classe task_group

Classe structured_task_group

Metodo task_group::run

Metodo task_group::wait

Metodo structured_task_group::run

Metodo structured_task_group::wait

Altre risorse

Funzione make_task

Metodo task_group::run_and_wait

Metodo structured_task_group::run_and_wait