Compartilhar via


Funções de transmissão de mensagens

A biblioteca de agentes assíncrona fornece várias funções que permitem passar mensagens entre componentes.

Essas funções de transmissão de mensagens são usadas com os vários tipos de bloco de mensagens. Para obter mais informações sobre os tipos de bloco de mensagens que são definidos pelo Runtime de simultaneidade, consulte Blocos de mensagens assíncronas.

Seções

Este tópico descreve as seguintes funções de transmissão de mensagens:

  • enviar e asend

  • receber e try-receive

  • Exemplos

enviar e asend

O Concurrency::send função envia uma mensagem para o destino especificado sincronia e o Concurrency::asend função envia uma mensagem para o destino especificado assincronamente. Tanto o send e asend funções aguardar até que o destino indica que irá, eventualmente, aceitar ou recusar a mensagem.

O send função aguarda até que o destino aceita ou recusa a mensagem antes que ele retorna. O send retorna a função true se a mensagem foi entregue e false contrário. Porque o send função funciona de forma síncrona, o send função aguarda que o destino para receber a mensagem antes que ele retorna.

Por outro lado, o asend função não espera o destino para aceitar ou recusar a mensagem antes que ele retorna. Em vez disso, o asend retorna a função true se o destino aceita a mensagem e entrará em proprietário. Caso contrário, asend retorna false para indicar que o destino recusou a mensagem ou adiada a decisão sobre se deve levar a mensagem.

go to top

receber e try-receive

O Concurrency::receive e Concurrency::try_receive funções ler dados de uma origem específica. O receive função aguarda a dados se torne disponível, enquanto o try_receive função retorna imediatamente.

Use o receive funcionar quando você deve ter os dados para continuar. Use o try_receive funcionar se você não deve bloquear o contexto atual ou você não tem que ter os dados para continuar.

go to top

Exemplos

Para obter exemplos que usam o send e asend, e receive funções, consulte os seguintes tópicos:

go to top

Consulte também

Referência

Função de enviar

Função de asend

Função de recepção

Função de try-receive

Conceitos

Biblioteca de agentes assíncronos

Blocos de mensagens assíncronas

Histórico de alterações

Date

History

Motivo

Março de 2011

Esclarecida a diferença entre o send e asend funções.

Comentários do cliente.

Agosto de 2010

Links adicionados aos exemplos.

Aprimoramento de informações.