completion_future (Clase)

Representa un futuro que corresponde a la operación asincrónica de C++ AMP.

Sintaxis

class completion_future;

Miembros

Constructores públicos

Nombre Descripción
Constructor completion_future Inicializa una nueva instancia de la clase completion_future.
Destructor ~completion_future Destruye el objeto completion_future.

Métodos públicos

Nombre Descripción
get Espera hasta que se completa la operación asincrónica asociada.
then Encadena un objeto de función de devolución de llamada al objeto completion_future que se va a ejecutar cuando la operación asincrónica asociada finalice la ejecución.
to_task Devuelve un objeto task correspondiente a la operación asincrónica asociada.
valid Obtiene un valor booleano que indica si el objeto está asociado a una operación asincrónica.
wait Se bloquea hasta que se complete la operación asincrónica asociada.
wait_for Se bloquea hasta que se complete la operación asincrónica asociada o hasta que haya transcurrido el tiempo que ha especificado _Rel_time.
wait_until Se bloquea hasta que se complete la operación asincrónica asociada o hasta que la hora actual supere el valor que ha especificado _Abs_time.

Operadores públicos

Nombre Descripción
operator std::shared_future<void> Convierte implícitamente un objeto completion_future en uno std::shared_future.
operator= Copia el contenido del objeto completion_future especificado en este.

Jerarquía de herencia

completion_future

Requisitos

Encabezado: amprt.h

Espacio de nombres: simultaneidad

completion_future

Inicializa una nueva instancia de la clase completion_future.

Sintaxis

completion_future();

completion_future(
    const completion_future& _Other );

completion_future(
    completion_future&& _Other );

Parámetros

_Other
Objeto completion_future que se va a copiar o mover.

Lista de sobrecargas

Nombre Descripción
completion_future(); Inicializa una instancia nueva de la clase completion_future.
completion_future(const completion_future& _Other); Inicializa una instancia nueva de la clase completion_future copiando un constructor.
completion_future(completion_future&& _Other); Inicializa una instancia nueva de la clase completion_future moviendo un constructor.

get

Espera hasta que se completa la operación asincrónica asociada. Genera la excepción almacenada si se encontró una durante la operación asincrónica.

Sintaxis

void get() const;

operator std::shared_future<void>

Convierte implícitamente un objeto completion_future en uno std::shared_future.

Sintaxis

operator std::shared_future<void>() const;

Valor devuelto

Objeto std::shared_future.

operator=

Copia el contenido del objeto completion_future especificado en este.

Sintaxis

completion_future&  operator= (const completion_future& _Other );
completion_future&  operator= (completion_future&& _Other );

Parámetros

_Other
El objeto desde el que se va a copiar.

Valor devuelto

La referencia a este objeto completion_future.

Lista de sobrecargas

Nombre Descripción
completion_future& operator=(const completion_future& _Other); Copia el contenido del objeto completion_future especificado en este mediante una copia en profundidad.
completion_future& operator=(completion_future&& _Other); Copia el contenido del objeto completion_future especificado en este mediante una asignación de movimiento.

y luego

Encadena un objeto de función de devolución de llamada al objeto completion_future que se va a ejecutar cuando la operación asincrónica asociada finalice la ejecución.

Sintaxis

template <typename _Functor>
void then(const _Functor & _Func ) const;

Parámetros

_Functor
Functor de devolución de llamada.

_Func
Objeto de función de devolución de llamada.

to_task

Devuelve un objeto task correspondiente a la operación asincrónica asociada.

Sintaxis

concurrency::task<void> to_task() const;

Valor devuelto

Objeto task correspondiente a la operación asincrónica asociada.

válido

Obtiene un valor booleano que indica si el objeto está asociado a una operación asincrónica.

Sintaxis

bool valid() const;

Valor devuelto

Es true si el objeto está asociado a una operación asincrónica; de lo contrario, es false.

wait

Se bloquea hasta que se complete la operación asincrónica asociada.

Sintaxis

void wait() const;

wait_for

Se bloquea hasta que se complete la operación asincrónica asociada o hasta que haya transcurrido el tiempo que ha especificado _Rel_time.

Sintaxis

template <
    class _Rep,
    class _Period
>
std::future_status::future_status wait_for(
    const std::chrono::duration< _Rep, _Period>& _Rel_time ) const;

Parámetros

_Rep
Tipo aritmético que representa el número de tics.

_Period
Un elemento std::ratio que representa el número de segundos transcurridos por tic.

_Rel_time
Cantidad máxima de tiempo que se va a esperar a que se complete la operación.

Valor devuelto

Devuelve:

  • std::future_status::deferred si la operación asincrónica asociada no se está ejecutando.

  • std::future_status::ready si la operación asincrónica asociada ha finalizado.

  • std::future_status::timeout si ha transcurrido el periodo de tiempo especificado.

wait_until

Se bloquea hasta que se complete la operación asincrónica asociada o hasta que la hora actual supere el valor que ha especificado _Abs_time.

Sintaxis

template <
    class _Clock,
    class _Duration
>
std::future_status::future_status wait_until(
    const std::chrono::time_point< _Clock, _Duration>& _Abs_time ) const;

Parámetros

_Clock
Reloj en el que se mide este punto en el tiempo.

_Duration
Intervalo de tiempo desde el inicio de la época, después del cual se agotará el tiempo de _Clockespera de la función.

_Abs_time
Punto en el tiempo después del cual se agotará el tiempo de espera de la función.

Valor devuelto

Devuelve:

  1. std::future_status::deferred si la operación asincrónica asociada no se está ejecutando.

  2. std::future_status::ready si la operación asincrónica asociada ha finalizado.

  3. std::future_status::timeout si ha transcurrido el periodo de tiempo especificado.

~completion_future

Destruye el objeto completion_future.

Sintaxis

~completion_future();

Consulte también

Espacio de nombres de simultaneidad (C++ AMP)