Partilhar via


Funções de passagem de mensagens

A Biblioteca de Agentes Assíncronos fornece várias funções que permitem passar mensagens entre componentes.

Essas funções de passagem 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 mensagem definidos pelo Concurrency Runtime, consulte Blocos de mensagens assíncronas.

Secções

Este tópico descreve as seguintes funções de passagem de mensagens:

enviar e enviar

A função concurrency::send envia uma mensagem para o destino especificado de forma síncrona e a função concurrency::asend envia uma mensagem para o destino especificado de forma assíncrona. send As funções e asend aguardam até que o destino indique que acabará por aceitar ou recusar a mensagem.

A send função aguarda até que o destino aceite ou recuse a mensagem antes que ela retorne. A send função retorna true se a mensagem foi entregue e false de outra forma. Como a send função funciona de forma síncrona, a send função aguarda que o destino receba a mensagem antes de retornar.

Por outro lado, a asend função não espera que o alvo aceite ou recuse a mensagem antes que ela retorne. Em vez disso, a asend função retorna true se o destino aceitar a mensagem e, eventualmente, levá-la. Caso contrário, asend retorna false para indicar que o destino recusou a mensagem ou adiou a decisão sobre aceitar ou não a mensagem.

[Topo]

receber e tentar_receber

As funções concurrency::receive e concurrency::try_receive leem dados de uma determinada fonte. A receive função aguarda que os dados fiquem disponíveis, enquanto a try_receive função retorna imediatamente.

Use a receive função quando precisar ter os dados para continuar. Use a função try_receive se não deve bloquear o contexto atual ou se não precisa dos dados para continuar.

[Topo]

Exemplos

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

[Topo]

Ver também

Biblioteca de agentes assíncronos
Blocos de mensagens assíncronas
Função de envio
Função asend
receber Função
Função try_receive