future (Clase)

 

Para obtener la documentación más reciente de Visual Studio 2017 RC, consulte Documentación de Visual Studio 2017 RC.

Describe una objeto de devolución asincrónico.

template <class Ty>
class future;

Cada estándar proveedor asincrónico devuelve un objeto cuyo tipo es una instancia de esta plantilla. Un future objeto proporciona el único acceso al proveedor asincrónico que está asociado. Si necesita varios objetos de devolución asincrónicos que están asociados con el mismo proveedor asincrónico, copie la future objeto un shared_future objeto.

Constructores públicos

NombreDescripción
Constructor de Future::FutureConstruye un objeto future.

Métodos públicos

NombreDescripción
Future:: Get (método)Recupera el resultado que se almacena en el estado asincrónico asociado.
Future:: Share (método)Convierte el objeto en un shared_future.
Future:: Valid (método)Especifica si el objeto no está vacío.
Future:: Wait (método)Bloquea el subproceso actual hasta que el estado asincrónico asociado esté listo.
Future:: wait_for (método)Se bloquea hasta que el estado asincrónico asociado está listo, o hasta que el tiempo especificado haya transcurrido.
Future:: wait_until (método)Se bloquea hasta que el estado asincrónico asociado está listo o hasta un punto determinado de tiempo.

Operadores públicos

NombreDescripción
Future:: operator =Transfiere el estado asincrónico asociado de un objeto especificado.

Encabezado: futuras

Espacio de nombres: std

Construye un objeto future.

future() noexcept;
future(future&& Other) noexcept;

Parámetros

Other
Objeto future.

Comentarios

El primer constructor crea un future objeto que no tiene ningún estado asincrónico asociado.

El segundo constructor crea un objeto future y transfiere el estado asincrónico asociado de Other. Otherya no tiene un estado asincrónico asociado.

Recupera el resultado que se almacena en el estado asincrónico asociado.

Ty get();

Valor devuelto

Si el resultado es una excepción, el método lanzar. De lo contrario, se devuelve el resultado.

Comentarios

Antes de recuperar el resultado, este método bloquea el subproceso actual hasta que el estado asincrónico asociado esté listo.

Para la especialización parcial future<Ty&>, el valor almacenado es una referencia al objeto que se pasa al proveedor asincrónico como el valor devuelto.

Dado que no existe ningún valor almacenado para la especialización future<void>, el método devuelve void.

En otras especializaciones, el método mueve su valor devuelto del valor almacenado. Por consiguiente, llamar a este método sólo una vez.

Transfiere un estado asincrónico asociado de un objeto especificado.

future& operator=(future&& Right) noexcept;

Parámetros

Right
Objeto future.

Valor devuelto

*this

Comentarios

Después de la transferencia, Right ya no tiene un estado asincrónico asociado.

Convierte el objeto en un shared_future objeto.

shared_future<Ty> share();

Valor devuelto

shared_future(move(*this))

Especifica si el objeto tiene un estado asincrónico asociado.

bool valid() noexcept;

Valor devuelto

Es true si el objeto tiene un estado asincrónico asociado; de lo contrario, es false.

Bloquea el subproceso actual hasta que el estado asincrónico asociado es listo.

void wait() const;

Comentarios

Un estado asincrónico asociado es listo sólo si su proveedor asincrónico ha almacenado un valor devuelto o ha almacenado una excepción.

Bloquea el subproceso actual hasta que el estado asincrónico asociado es listo o hasta que haya transcurrido un intervalo de tiempo especificado.

template <class Rep, class Period>
future_status wait_for(
    const chrono::duration<Rep, Period>& Rel_time) const;

Parámetros

Rel_time
Un chrono:: Duration objeto que especifica un intervalo de tiempo máximo que el subproceso se bloquea.

Valor devuelto

Un future_status que indica el motivo para devolver.

Comentarios

Un estado asincrónico asociado está listo solo si su proveedor asincrónico ha almacenado un valor devuelto o ha almacenado una excepción.

Bloquea el subproceso actual hasta que el estado asincrónico asociado es listo o hasta después de un punto de tiempo especificado.

template <class Clock, class Duration>
future_status wait_until(
    const chrono::time_point<Clock, Duration>& Abs_time) const;

Parámetros

Abs_time
Un chrono:: time_point objeto que especifica un tiempo después del cual se puede desbloquear el subproceso.

Valor devuelto

Un future_status que indica el motivo para devolver.

Comentarios

Un estado asincrónico asociado es listo sólo si su proveedor asincrónico ha almacenado un valor devuelto o ha almacenado una excepción.

Referencia de archivos de encabezado
<>>

Mostrar: