消息传递函数

异步代理库提供了多个函数,让你能够在组件之间传递消息。

这些消息传递函数用于各种消息块类型。 有关并发运行时定义的消息块类型的详细信息,请参阅异步消息块

章节

本主题介绍以下消息传递函数:

send 和 asend

concurrency::send 函数可将消息同步发送到指定目标,concurrency::asend 函数可将消息异步发送到指定目标。 sendasend 函数都会等待,直到目标指示它最终将接受或拒绝消息。

send 函数会等到目标接受或拒绝消息,然后再返回。 如果消息已传递,则 send 函数返回 true,否则返回 false。 由于 send 函数是同步工作的,因此 send 函数在返回之前会等待目标接收消息。

相反,asend 函数在返回之前不会等待目标接受或拒绝消息。 如果目标接受消息并且最终将接收该消息,则 asend 函数返回 true。 否则,asend 返回 false,指示目标拒绝了消息或推迟了有关是否接收消息的决定。

[返回页首]

receive 和 try_receive

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

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

[返回页首]

示例

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

[返回页首]

另请参阅

异步代理库
异步消息块
send 函数
asend 函数
receive 函数
try_receive函数