Condividi tramite


Costruttore task::task

Costruisce un oggetto task.

task();

template<
   typename _Ty
>
__declspec(
   noinline
) explicit task(_Ty _Param);

template<
   typename _Ty
>
__declspec(
   noinline
) explicit task(_Ty _Param, const task_options& _TaskOptions);

task(
   const task& _Other
);

task(
   task&& _Other
);

Parametri

  • _Ty
    Il tipo del parametro dal quale deve essere costruita l'attività.

  • _Param
    Il parametro dal quale deve essere costruita l'attività. Ciò può essere un'espressione lambda, un oggetto funzione, un oggetto task_completion_event<result_type> o un Windows::Foundation::IAsyncInfo se si utilizzano le attività nell'applicazione Windows Store. L'espressione lambda o l'oggetto funzione devono essere equivalenti a std::function<X(void)>, dove X può essere una variabile di tipo result_type, task<result_type>, o Windows::Foundation::IAsyncInfo nelle applicazioni Windows Store.

  • _TaskOptions
    Le opzioni di attività includono il token di annullamento, l'utilità di pianificazione, ecc.

  • _Other
    Oggetto task di origine.

Note

Il costruttore predefinito per task è presente solo per consentire alle attività di essere utilizzate all'interno di contenitori. Un'attività costruita per impostazione predefinita non può essere utilizzata fino a quando non le verrà assegnata un'attività valida. Tramite i metodi come get, wait o then verrà generata un'eccezione invalid_argument quando vengono chiamati su un'attività costruita predefinita.

Un'attività creata da task_completion_event verrà completata (e le relative continuazioni verranno pianificate) una volta impostato l'evento di completamento dell'attività.

La versione del costruttore che accetta un token di annullamento crea un'attività che può essere annullata utilizzando il cancellation_token_source da cui è stato ottenuto il token. Le attività create senza un token di annullamento non sono annullabili.

Le attività create da un'interfaccia Windows::Foundation::IAsyncInfo o un'espressione lambda che restituisce un'interfaccia IAsyncInfo raggiungono lo stato finale quando l'operazione o l'azione asincrona di Windows Runtime racchiusa viene completata. Analogamente, le attività create da un lambda tramite cui viene restituito un oggetto task<result_type> raggiungono lo stato finale quando l'attività interna raggiunge il relativo stato finale e non quando viene restituito un valore tramite il lambda.

task si comporta come un puntatore intelligente e viene passato in modo sicuro per valore. È possibile accedervi da più thread senza la necessità di blocchi.

Gli overload del costruttore che accettano un'interfaccia di Windows::Foundation::IAsyncInfo o un'espressione lambda che restituisce tale interfaccia, sono disponibili solo per le applicazioni di Windows Store.

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

Requisiti

Intestazione: ppltasks.h

Spazio dei nomi: concorrenza

Vedere anche

Riferimenti

Classe task (runtime di concorrenza)