Compartir a través de


Funciones que pasan mensajes

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

Estas funciones para pasar mensajes se usan con los distintos tipos de bloques de mensajes. Para obtener más información sobre los tipos de bloques de mensajes definidos por el Runtime de simultaneidad, vea Bloques de mensajes asincrónicos.

Secciones

En este tema se describen las siguientes funciones para pasar mensajes:

  • send y asend

  • receive y try_receive

  • Ejemplos

send y asend

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

La función send espera a que el destino acepte o rechace el mensaje antes de regresar. La función send devuelve true si se entrega el mensaje; en caso contrario, devuelve false. Dado que la función send funciona de manera sincrónica, la función send espera a que el destino reciba el mensaje antes de regresar.

Por el contrario, la función asend no espera a que el destino acepte o rechace el mensaje antes de regresar. En su lugar, la función asend devuelve true si el destino acepta el mensaje y lo toma en última instancia. De lo contrario, asend devuelve false para indicar que el destino rechazó el mensaje o pospuso la decisión de tomarlo.

[Arriba]

receive y try_receive

concurrency::receive y concurrency::try_receive funciona leer los datos de un origen determinado. La función receive espera a que los datos estén disponibles, mientras que la función try_receive regresa 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 en los que se usan las funciones send, asend y receive, vea los temas siguientes:

[Arriba]

Vea también

Referencia

send (Función)

asend (Función)

receive (Función)

try_receive (Función)

Conceptos

Biblioteca de agentes asincrónicos

Bloques de mensajes asincrónicos