消息传递函数

异步代理库提供了一些函数,这些函数使您可以在组件之间传递消息。

这些消息传递函数与各种消息块类型一起使用。 有关并发运行时所定义的消息块类型的更多信息,请参见异步消息块

各节内容

本主题描述以下消息传递函数:

  • send 和 asend

  • receive 和 try_receive

  • 示例

send 和 asend

Concurrency::send 函数一条消息发送到指定目标同步和 concurrency::asend 函数需要将一条消息异步发送到指定的目标。 在目标指示它将最终接受或拒绝消息之前,sendasend 函数都将一直等待。

send 函数等到目标接受或拒绝消息后才会返回。 如果已发送消息,则 send 函数将返回 true,否则将返回 false。 因为 send 函数以同步方式工作,所以 send 函数会先等待目标接收消息,然后才会返回。

相反,asend 函数在返回之前不会等待目标接受或拒绝消息。 相反,当目标接受消息并且最终将采用该消息时,asend 函数会返回 true。 否则,asend 将返回 false,以指示目标拒绝了消息或者目标延迟决定是否采用消息。

Top

receive 和 try_receive

Concurrency::receiveconcurrency::try_receive 函数从给定的源读取数据。 receive 函数将等待数据可用,而 try_receive 函数将立即返回。

如果必须具有数据才能继续,请使用 receive 函数。 如果不必阻止当前上下文,或者不必具有数据便可继续,请使用 try_receive 函数。

Top

示例

有关使用 sendasendreceive 函数的示例,请参见以下主题:

Top

请参见

参考

send 函数

asend 函数

receive 函数

try_receive 函数

概念

异步代理库

异步消息块