Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Classe
Descreve um objeto de retorno assíncrono.
Sintaxe
template <class Ty>
class future;
Comentários
Cada provedor assíncrono padrão retorna um objeto cujo tipo é uma instanciação desse modelo. Um objeto future fornece o único acesso ao provedor assíncrono ao qual está associado. Se precisar de vários objetos de retorno assíncronos associados ao mesmo provedor assíncrono, copie o objeto future para um objeto shared_future.
Membros
Construtores públicos
| Nome | Descrição |
|---|---|
future |
Constrói um objeto future. |
Métodos públicos
| Nome | Descrição |
|---|---|
get |
Recupera o resultado armazenado no estado assíncrono associado. |
share |
Converte o objeto em um shared_future. |
valid |
Especifica se o objeto não está vazio. |
wait |
Bloqueia o thread atual até que o estado assíncrono associado esteja pronto. |
wait_for |
Bloqueia até que o estado assíncrono associado esteja pronto ou até que o tempo especificado tenha decorrido. |
wait_until |
Bloqueia até que o estado assíncrono associado esteja pronto ou até um ponto no tempo especificado. |
Operadores públicos
| Nome | Descrição |
|---|---|
future::operator= |
Transfere o estado assíncrono associado de um objeto especificado. |
Requisitos
Cabeçalho: <future>
Namespace: std
Construtores
Constrói um objeto future.
future() noexcept;
future(future&& Other) noexcept;
Parâmetros
Other
Um objeto future.
Comentários
O primeiro construtor cria um objeto future que não tem nenhum estado assíncrono associado.
O segundo construtor cria um objeto future e transfere o estado assíncrono associado de Other. Other não tem mais um estado assíncrono associado.
get
Recupera o resultado armazenado no estado assíncrono associado.
Ty get();
Valor de retorno
Se o resultado for uma exceção, o método a gerará novamente. Caso contrário, o resultado será retornado.
Comentários
Antes de recuperar o resultado, este método bloqueia o thread atual até que o estado assíncrono associado esteja pronto.
Para a especialização parcial future<Ty&>, o valor armazenado será efetivamente uma referência ao objeto que foi passado para o provedor assíncrono como o valor retornado.
Como não existe nenhum valor armazenado para a especialização future<void>, o método retorna void.
Em outras especializações, o método move seu valor retornado do valor armazenado. Portanto, chame este método apenas uma vez.
operator=
Transfere o estado assíncrono associado de um objeto especificado.
future& operator=(future&& Right) noexcept;
Parâmetros
Right
Um objeto future.
Valor de retorno
*this
Comentários
Após a transferência, Right não tem mais um estado assíncrono associado.
share
Converte o objeto em um objeto shared_future.
shared_future<Ty> share();
Valor de retorno
shared_future(move(*this))
valid
Especifica se o objeto tem um estado assíncrono associado.
bool valid() noexcept;
Valor de retorno
true se o objeto tiver um estado assíncrono associado; caso contrário, false.
wait
Bloqueia o thread atual até que o estado assíncrono associado esteja pronto.
void wait() const;
Comentários
Um estado assíncrono associado ficará pronto somente se seu provedor assíncrono tiver armazenado um valor retornado ou armazenado uma exceção.
wait_for
Bloqueia o thread atual até que o estado assíncrono associado esteja pronto ou até que o intervalo de tempo especificado tenha decorrido.
template <class Rep, class Period>
future_status wait_for(const chrono::duration<Rep, Period>& Rel_time) const;
Parâmetros
Rel_time
Um objeto chrono::duration que especifica um intervalo de tempo máximo durante o qual o thread fica bloqueado.
Valor de retorno
Um future_status que indica o motivo do retorno.
Comentários
Um estado assíncrono associado ficará pronto somente se seu provedor assíncrono tiver armazenado um valor retornado ou armazenado uma exceção.
wait_until
Bloqueia o thread atual até que o estado assíncrono associado esteja pronto ou após um determinado ponto no tempo.
template <class Clock, class Duration>
future_status wait_until(const chrono::time_point<Clock, Duration>& Abs_time) const;
Parâmetros
Abs_time
Um objeto time_point que especifica um tempo após o qual o thread pode ser desbloqueado.
Valor de retorno
Um future_status que indica o motivo do retorno.
Comentários
Um estado assíncrono associado ficará pronto somente se seu provedor assíncrono tiver armazenado um valor retornado ou armazenado uma exceção.