Compartilhar via


<future>

Inclua o futuro padrão do cabeçalho> <para definir as classes de modelo e os modelos de suporte que simplificam executar uma função - possível em um thread separado e recuperar seu resultado. O resultado é o valor retornado pela função ou por uma exceção que é emitida pela função mas não é capturado na função.

Este cabeçalho usa o tempo de execução (ConcRT) de simultaneidade de forma que você possa usar o junto com outros mecanismos de ConcRT. Para obter mais informações sobre como ConcRT, consulte Tempo de Execução de Simultaneidade.

#include <future>

Comentários

Dica

No código que é construído usando /clr ou /clr:pure, este cabeçalho é bloqueado.

Um provedor assíncrona armazena o resultado de uma chamada de função. Um objeto de retorno assíncrono é usado para recuperar o resultado de uma chamada de função. Um estado assíncrona associado fornece comunicação assíncrona entre um provedor e um ou mais objetos de retorno assíncronas.

Um programa não cria diretamente objetos assíncronos associados do estado. O programa cria um provedor assíncrona sempre que necessário um e do que cria um objeto de retorno assíncrono que compartilha seu estado assíncrona associado ao provedor. Os provedores assíncronas e retornam objetos assíncronos gerenciam os objetos que mantém seu estado assíncrona associado compartilhado. Quando o objeto do último que referencia o estado associado assíncrona, o liberará o objeto que contém o estado assíncrona associado será destruído.

Um provedor assíncrono ou um objeto de retorno assíncrono que não tem nenhum estado assíncrona associado estiver vazia.

Um estado associado assíncrona está pronto apenas se o provedor assíncrona armazenou um valor de retorno ou armazenados uma exceção.

A função async do modelo e as classes promise e packaged_task de modelo são provedores assíncronas. As classes future e shared_future do modelo descrevem objetos de retorno assíncronas.

Cada um modelo de classificação promise, future, e shared_future tem uma especialização para o tipo void e uma especialização parcial para armazenar e recuperar um valor por referência. Essas especializações diferentes do modelo primário somente em assinaturas e semântica das funções de data warehouse e recupera o valor retornado.

As classes future e shared_future do modelo nunca bloqueiam em seus destruidores, a não ser que um caso em que são preservados para compatibilidade com versões anteriores: Em vez de todos futuros restantes, pois de future— ou shared_futureo último — que anexado a uma tarefa começou a std::async, o destruidor se a tarefa não foi concluída; isto é, o bloqueia se esse thread não chamou ainda .get() ou .wait() e a tarefa ainda estiver em execução. A seguinte observação de usabilidade foi adicionada à descrição de std::async no padrão de rascunho: “[Observação: Se um futuro obtido de std::async é movido do escopo local, o outro código que usa o futuro deve estar atento que o destruidor do futuro pode bloquear para que o estado compartilhado fique pronto. — finaliza a observação]” em todos os casos, future e destruidores restantes de shared_future é necessário e garantido para bloquear nunca.

Membros

Classes

Nome

Descrição

Classe future

Descreve um objeto de retorno assíncrona.

Classe future_error

Descreve um objeto de exceção que pode ser gerado pelos métodos de tipos que gerenciam objetos de future .

Classe packaged_task

Descreve um provedor assíncrono que é um wrapper de chamada e cujo a assinatura de chamada seja Ty(ArgTypes...). Seu estado assíncrona associado mantém uma cópia do objeto acessível além do resultado potencial.

Classe promise

Descreve um provedor assíncrono.

Classe shared_future

Descreve um objeto de retorno assíncrona. Em contraste com um objeto de future , um provedor assíncrono pode ser associado a qualquer número de objetos de shared_future .

Estruturas

Nome

Descrição

Estrutura is_error_code_enum

Especialização que indica que future_errc é apropriado para armazenar error_code.

Estrutura uses_allocator

Especialização que contém sempre true.

Funções

Nome

Descrição

Função async

Representa um provedor assíncrona.

Função future_category

Retorna uma referência ao objeto de error_category que apresenta os erros associados aos objetos de future .

Função make_error_code

Cria error_code que possui o objeto de error_category que apresenta erros de future .

Função make_error_condition

Cria error_condition que possui o objeto de error_category que apresenta erros de future .

Função swap (<future>)

Troca o estado associado assíncrona de um objeto de promise com o custo de outro.

Enumerações

Nome

Descrição

Enumeração future_errc

Fornece nomes simbólicos para os erros relatados pela classe de future_error .

Enumeração future_status

Fornece nomes simbólicos das razões pelas quais uma função de tempo de espera pode retornar.

Enumeração de inicialização

Representa um tipo de máscara de bits que descreve os possíveis modos para a função asyncdo modelo.

Consulte também

Outros recursos

Arquivos de cabeçalho da Biblioteca Padrão C++