Partilhar via


Função Async

Representa um provedor assíncrono.

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

Comentários

Definições das abreviações:

dfn

O resultado de chamar decay_copy(forward<Fn>(fn)).

dargs

Os resultados das chamadas decay_copy(forward<ArgsTypes>(args…)).

Ty

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

A primeira função do modelo retorna async(launch::any, fn, args…).

A segunda função retorna um objeto de future<Ty> cujo estado assíncrono associado contém um resultado juntamente com os valores de dfn e de dargs e um objeto de segmento para gerenciar um segmento separado de execução.

A menos que decay<Fn>::type é um tipo diferente do lançamento, a segunda função não participa na resolução de sobrecarga.

Se policy é launch::any, a função pode escolher launch::async ou launch::deferred.Nessa implementação, a função usa launch::async.

Se policy é launch::async, a função cria um segmento que avalia INVOKE(dfn, dargs..., Ty).A função retorna após criar o segmento sem os resultados de espera.Se o sistema não pode iniciar um novo segmento, a função gera system_error que tem um código de erro de resource_unavailable_try_again.

Se policy é launch::deferred, a função marca seu estado assíncrono associado como mantendo uma função adiadas e retorna.A primeira chamada para qualquer função não agendada que aguardar o estado assíncrono associado pronto para ser aplicado chama a função adiada por INVOKE(dfn, dargs..., Ty)de avaliação.

Em todos os casos, o estado assíncrono associado do objeto de future não está definido para aprontar-se até que a avaliação de INVOKE(dfn, dargs…, Ty) ela lançando uma exceção, ou retornando normalmente.O resultado de estado assíncrono associado é uma exceção se um for lançada, ou qualquer valor que é retornado pela avaliação.

A pseudo--função INVOKE é definida em <functional>.

Requisitos

futuro deCabeçalho:

Namespace: STD

Consulte também

Referência

<future>

result_of Class

Classe futura

Outros recursos

Arquivos de cabeçalho