消息传递函数
异步代理库提供了一些函数,这些函数使您可以在组件之间传递消息。
这些消息传递函数与各种消息块类型一起使用。 有关并发运行时所定义的消息块类型的更多信息,请参见异步消息块。
各节内容
本主题描述以下消息传递函数:
send 和 asend
receive 和 try_receive
示例
send 和 asend
Concurrency::send 函数一条消息发送到指定目标同步和 concurrency::asend 函数需要将一条消息异步发送到指定的目标。 在目标指示它将最终接受或拒绝消息之前,send 和 asend 函数都将一直等待。
send 函数等到目标接受或拒绝消息后才会返回。 如果已发送消息,则 send 函数将返回 true,否则将返回 false。 因为 send 函数以同步方式工作,所以 send 函数会先等待目标接收消息,然后才会返回。
相反,asend 函数在返回之前不会等待目标接受或拒绝消息。 相反,当目标接受消息并且最终将采用该消息时,asend 函数会返回 true。 否则,asend 将返回 false,以指示目标拒绝了消息或者目标延迟决定是否采用消息。
Top
receive 和 try_receive
Concurrency::receive 和 concurrency::try_receive 函数从给定的源读取数据。 receive 函数将等待数据可用,而 try_receive 函数将立即返回。
如果必须具有数据才能继续,请使用 receive 函数。 如果不必阻止当前上下文,或者不必具有数据便可继续,请使用 try_receive 函数。
Top
示例
有关使用 send、asend 和 receive 函数的示例,请参见以下主题:
Top