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.

Sintassi

template<
    typename _Function
>
class task_handle : public ::Concurrency::details::_UnrealizedChore;

Parametri

_Funzione
Tipo dell'oggetto funzione che verrà richiamato per eseguire il lavoro rappresentato dall'oggetto task_handle .

Membri

Costruttori pubblici

Nome Descrizione
Task_handle Costruisce un oggetto task_handle nuovo. Il lavoro dell'attività viene eseguito richiamando la funzione specificata come parametro al costruttore.
Distruttore ~task_handle Elimina definitivamente l'oggetto task_handle .

Operatori pubblici

Nome Descrizione
operator() Operatore di chiamata di funzione richiamato dal runtime per eseguire il lavoro dell'handle di attività.

Osservazioni:

task_handle gli oggetti possono essere utilizzati insieme a un structured_task_group oggetto o più generale task_group per scomporre il lavoro in attività parallele. Per altre informazioni, vedere Parallelismo delle attività.

Si noti che l'autore di un task_handle oggetto è responsabile della gestione della durata dell'oggetto creato task_handle fino a quando non è più richiesto dal runtime di concorrenza. In genere, ciò significa che l'oggetto task_handle non deve essere distrutto fino a quando non viene chiamato il wait metodo o run_and_wait di task_group o structured_task_group a cui viene accodato.

task_handle gli oggetti vengono in genere usati insieme alle espressioni lambda C++. Poiché non si conosce il tipo vero dell'espressione lambda, la funzione make_task viene in genere usata per creare un task_handle oggetto .

Il runtime crea una copia della funzione di lavoro passata a un task_handle oggetto . Pertanto, tutte le modifiche dello stato che si verificano in un oggetto funzione passato a un task_handle oggetto non verranno visualizzate nella copia di tale oggetto funzione.

Gerarchia di ereditarietà

task_handle

Requisiti

Intestazione: ppl.h

Spazio dei nomi: Concurrency

operator()

Operatore di chiamata di funzione richiamato dal runtime per eseguire il lavoro dell'handle di attività.

void operator()() const;

Task_handle

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

task_handle(const _Function& _Func);

Parametri

_Func
Funzione che verrà richiamata per eseguire il lavoro rappresentato dall'oggetto task_handle . Può trattarsi di un funtore lambda, di un puntatore a una funzione o di qualsiasi oggetto che supporta una versione dell'operatore di chiamata di funzione con la firma void operator()().

Osservazioni:

Il runtime crea una copia della funzione di lavoro passata al costruttore. Pertanto, tutte le modifiche dello stato che si verificano in un oggetto funzione passato a un task_handle oggetto non verranno visualizzate nella copia di tale oggetto funzione.

~Task_handle

Elimina definitivamente l'oggetto task_handle .

~task_handle();

Vedi anche

Spazio dei nomi concurrency
Classe task_group
Classe structured_task_group