Funções de transmissão de mensagem
A biblioteca assíncrona de agentes fornece várias funções que permitem passar mensagens entre os componentes.
Essas funções mensagem- passando são usadas com vários tipos retornadas bloco. Para obter mais informações sobre os tipos retornadas bloco que são definidos no tempo de execução de simultaneidade, consulte Blocos de mensagens assíncronos.
Seções
Este tópico descreve as seguintes funções mensagem- passando:
envio e asend
recebe e try_receive
Exemplos
envio e asend
A função de concurrency::send envia uma mensagem ao destino especificado de forma síncrona e os envios da função de concurrency::asend uma mensagem ao destino especificado de maneira assíncrona. As funções de send e de asend esperar até que o destino que indica se houver aceitará ou diminuirá a mensagem.
A função de send espera até que o destino aceita ou diminui a mensagem antes de retornar. A função de send retorna true se a mensagem foi entregue e false de outra forma. Como a função de send funciona de forma síncrona, a função de send espera o destino para receber a mensagem antes de retornar.
Por outro lado, a função de asend não aguarda o destino para aceitar ou diminuir a mensagem antes de retornar. Em vez disso, a função de asend retorna true se o destino aceita a mensagem e a levará se houver. Caso contrário, asend retorna false para indicar que o destino diminuiu a mensagem ou adiou a decisão sobre se assumirá a mensagem.
[Superior]
recebe e try_receive
concurrency::receive e concurrency::try_receive funções lendo dados de uma origem especificada. A função de receive espera dados fique disponível, enquanto a função de try_receive retorna imediatamente.
Use a função de receive quando você deve ter dados para continuar. Use a função de try_receive se você não deve impedir o contexto atual ou você não tem que ter dados para continuar.
[Superior]
Exemplos
Para obter exemplos que usam send e asend, e as funções de receive , consulte os seguintes tópicos:
[Superior]