Condividi tramite


funzione async

Rappresenta un provider asincrono.

template<class Fn, class... ArgTypes>
   future<typename result_of<Fn(ArgTypes...)>::type>;
      async(Fn&& fn, ArgTypes&&... args);
template<class Fn, class... ArgTypes>
   future<typename result_of<Fn(ArgTypes...)>::type>;
      async(launch policy, Fn&& fn, ArgTypes&&... args);

Parametri

  • policy
    Un valore di avvio.

Note

Definizioni delle abbreviazioni:

dfn

La chiamata di decay_copy(forward<Fn>(fn)).

dargs

I risultati delle chiamate decay_copy(forward<ArgsTypes>(args…)).

Ty

Il tipo result_of<Fn(ArgTypes…)>::type.

La prima funzione di modello restituisce async(launch::any, fn, args…).

La seconda funzione restituisce un oggetto di future<Ty> dello stato collegato asincrono utilizza un risultato insieme ai valori di dfn e di dargs e un oggetto thread per gestire un thread separato di esecuzione.

A meno che decay<Fn>::type sia un tipo diverso dall'avvio, la seconda funzione non partecipa alla risoluzione dell'.

Se policy è launch::any, la funzione potrebbe scegliere launch::async o launch::deferred.In questa implementazione, la funzione utilizza launch::async.

Se policy è launch::async, la funzione crea un thread che restituisce INVOKE(dfn, dargs..., Ty).Funzione restituisce dopo avere creato il thread senza attendere i risultati.Se il sistema non può iniziare un nuovo thread, la funzione genera system_error con un codice di errore resource_unavailable_try_again.

Se policy è launch::deferred, la funzione contrassegna il relativo stato asincrono connessi come utilizzare una funzione posticipata e restituisce.La prima chiamata a una funzione non temporizzata che è stato collegato asincrono per essere pronta in effetti chiama la funzione posticipata da INVOKE(dfn, dargs..., Ty)di valutazione.

In tutti i casi, lo stato asincrono collegato dell'oggetto di future non è impostato per attendere finché la valutazione di INVOKE(dfn, dargs…, Ty) non completi, generando un'eccezione o restituito correttamente.Il risultato dello stato asincrono collegato un'eccezione se si è stato generato, o qualsiasi valore restituito dalla valutazione.

La pseudo-funzione INVOKE è definita in <functional>.

Requisiti

Implementazioni diIntestazione:

Spazio dei nomi: deviazione standard

Vedere anche

Riferimenti

<future>

result_of Class

classe future

Altre risorse

File di intestazione