Compartir vía


Funciones que pasan mensajes

La biblioteca de agentes asincrónicos proporciona varias funciones que permiten pasar mensajes entre componentes.

Estas funciones de paso de mensajes se usan con los distintos tipos de bloque de mensajes. Para más información sobre los tipos de bloque de mensajes definidos por el Runtime de simultaneidad, consulte Bloques de mensajes asincrónicos.

Secciones

En este tema se describen las siguientes funciones de paso de mensajes:

send y asend

La función concurrency::send envía un mensaje al destino especificado de forma sincrónica y la función concurrency::asend lo envía al especificado de forma asincrónica. Las funciones send y asend esperan hasta que el destino indica que finalmente aceptará o rechazará el mensaje.

La función send espera hasta que el destino acepte o rechace el mensaje antes de que se devuelva. La función send devuelve true si el mensaje se entregó y false en caso contrario. Dado que la función send funciona de forma sincrónica, la función send espera a que el destino reciba el mensaje antes de que se devuelva.

Por el contrario, la función asend no espera a que el destino acepte o rechace el mensaje antes de que se devuelva. En su lugar, la función asend devuelve true si el destino acepta el mensaje y finalmente lo toma. De lo contrario, asend devuelve false para indicar que el destino rechazó el mensaje o pospuso la decisión sobre si se debe aceptar el mensaje.

[Arriba]

receive y try_receive

Las funciones concurrency::receive y concurrency::try_receive leen datos de un origen determinado. La función receive espera a que los datos estén disponibles, mientras que la función try_receive vuelve inmediatamente.

Use la función receive cuando deba tener los datos para continuar. Use la función try_receive si no debe bloquear el contexto actual o no tiene que tener los datos para continuar.

[Arriba]

Ejemplos

Para obtener ejemplos que usan las funciones send, asend y receive, consulte los temas siguientes:

[Arriba]

Consulte también

Biblioteca de agentes asincrónicos
Bloques de mensajes asincrónicos
send (función)
asend (función)
Función receive
función try_receive