Compartir a través de


función async

Representa un proveedor asincrónico.

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);

Parámetros

Comentarios

Definiciones de abreviaturas:

dfn

El resultado de llamar a decay_copy(forward<Fn>(fn)).

dargs

Los resultados de las llamadas decay_copy(forward<ArgsTypes>(args…)).

Ty

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

La primera función de la plantilla devuelve async(launch::any, fn, args…).

La segunda función devuelve un objeto de future<Ty> cuyo estado asincrónica asociada celebre un resultado junto con los valores de dfn y de dargs y un objeto de subproceso para administrar un subproceso independiente de la ejecución.

A menos que decay<Fn>::type sea un tipo distinto de inicio, la segunda función no participa en la resolución de sobrecarga.

Si policy es launch::any, la función podría elegir launch::async o launch::deferred.En esta implementación, la función utiliza launch::async.

Si policy es launch::async, la función crea un subproceso que se evalúe INVOKE(dfn, dargs..., Ty).La función devuelve después de crear el subproceso sin para resultados que espera.Si el sistema no puede iniciar un nuevo subproceso, la función produce system_error que tiene un código de error de resource_unavailable_try_again.

Si policy es launch::deferred, la función marca su estado asincrónica asociada como conserva una función diferida y devuelve.La primera llamada a cualquier función no sincronizado que espere el estado asincrónica asociada esté lista en efecto llama a la función diferida por INVOKE(dfn, dargs..., Ty) de evaluación.

En todos los casos, no establecen el estado asincrónica asociada al objeto de futurepara alistar hasta que la evaluación de INVOKE(dfn, dargs…, Ty) complete, iniciando una excepción o cambiando normalmente.El resultado de estado asincrónica asociada es una excepción si se producir, o cualquier valor que es devuelto por la evaluación.

La pseudo-función INVOKE se define en <functional>.

Requisitos

Futuro de Encabezado:

Espacio de nombres: std

Vea también

Referencia

<future>

result_of Class

clase futura

Otros recursos

Archivos de encabezado