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