Condividi tramite


Costruttore task::task

Costruisce un oggetto task.

task();

template<
   typename _Ty
>
explicit task(
   _Ty_Param
);

template<
   typename _Ty
>
explicit task(
   _Ty_Param,
   cancellation_token _Token
);

task(
   const task& _Other
);

task(
   task&& _Other
);

Parametri

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

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

  • _Token
    Il token di annullamento da associare a questa attività.Un'attività creata senza un token di annullamento non può essere annullata.In modo implicito riceve **cancellation_token::none()**token.

  • _Other
    Oggetto task di origine.

  • _CancellationToken

Note

Il costruttore predefinito per task è presente solo per consentire le attività essere utilizzato all'interno di contenitori.Un'attività costruita impostazione predefinita non può essere utilizzato finché non verrà assegnato un'attività valida.I metodi come get, wait o then genereranno un'eccezione di invalid_argument una volta chiamati a un'impostazione predefinita ha creato l'attività.

Un'attività creata da task_completion_event completi (e visualizzare le relative continuazioni) quando l'evento di completamento delle attività è impostato su.

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

Le attività create da Windows::Foundation::IAsyncInfo stringa o un'espressione lambda che restituisce un intervallo di IAsyncInfo lo stato di terminale quando le finestre incluse operazione asincrona runtime o azione completa.Analogamente, le attività create da un lamda che restituisce un intervallo di task<result_type> lo stato di terminale quando l'attività interna raggiunge lo stato di terminale e non quando il lamda restituisce.

task si comporta come un puntatore intelligente ed è certi di passare intorno per valore.È possibile accedere da più thread senza la necessità dei 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 lo stile di metropolitana.

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

Requisiti

intestazione: ppltasks.h

Concorrenza diSpazio dei nomi:

Vedere anche

Riferimenti

Classe task (runtime di concorrenza)