Condividi tramite


Classe task (runtime di concorrenza)

Classe task Parallel Patterns Library (PPL). Un oggetto task rappresenta il lavoro che può essere eseguito in modo asincrono e contemporaneamente con altre attività e il lavoro parallelo prodotto da algoritmi paralleli nel runtime di concorrenza. Produce un risultato di tipo _ResultType dopo il corretto completamento. Le attività di tipo task<void> non producono risultati. È possibile attendere il completamento di un'attività e annullarla indipendentemente da altre attività. È anche possibile comporla con altre attività usando i criteri continuations(then), join(when_all) e choice(when_any).

template <    typename _Type > class task;  template <> class task<void>;  template<    typename _ReturnType > class task;

Parametri

  • _Type

  • T

  • _ReturnType
    Il tipo di risultato di quest'attività.

Membri

Typedef pubblici

Nome

Descrizione

result_type

Il tipo del risultato prodotto da un oggetto di questa classe.

Costruttori pubblici

Nome

Descrizione

Costruttore task::task

Di overload. Costruisce un oggetto task.

Metodi pubblici

Nome

Descrizione

Metodo task::get

Di overload. Restituisce il risultato generato da questa attività. Se l'attività non è in uno stato terminale, una chiamata a get attenderà il completamento dell'attività. Questo metodo non restituisce un valore quando viene chiamato su un'attività con un result_type void.

Metodo task::is_apartment_aware

Determina se l'attività annulla il wrapping di un'interfaccia IAsyncInfo di Windows Runtime o discende da tale attività.

Metodo task::is_done (runtime di concorrenza)

Determina se l'attività è stata completata.

Metodo task::scheduler (runtime di concorrenza)

Restituisce l'utilità di pianificazione per questa attività

Metodo task::then

Di overload. Aggiunge un'attività di continuazione a questa attività.

Metodo task::wait

Attende che l'attività raggiunga uno stato finale. È possibile che tramite wait l'attività venga eseguita inline, se tutte le dipendenze di attività vengono soddisfatte e non è già stato selezionato per l'esecuzione da un processo di lavoro in background.

Operatori pubblici

Nome

Descrizione

Operatore task::operator!=

Di overload. Determina se due oggetti task rappresentano attività interne diverse.

Operatore task::operator=

Di overload. Sostituisce il contenuto di un oggetto task con un altro.

Operatore task::operator==

Di overload. Determina se due oggetti task rappresentano la stessa attività interna.

Note

La classe dell'attività e i tipi correlati definiti in ppltasks sono portabili tra piattaforme e costituiscono la base per C++ REST SDK, una libreria portabile per HTTP asincrono.

Per altre informazioni, vedere Parallelismo delle attività (runtime di concorrenza).

Gerarchia di ereditarietà

task

Requisiti

Intestazione: ppltasks.h

Spazio dei nomi: Concurrency

Vedere anche

Riferimenti

Spazio dei nomi concurrency