消息传递函数
异步代理库提供了多个函数,让你能够在组件之间传递消息。
这些消息传递函数用于各种消息块类型。 有关并发运行时定义的消息块类型的详细信息,请参阅异步消息块。
章节
本主题介绍以下消息传递函数:
send 和 asend
concurrency::send 函数可将消息同步发送到指定目标,concurrency::asend 函数可将消息异步发送到指定目标。 send
和 asend
函数都会等待,直到目标指示它最终将接受或拒绝消息。
send
函数会等到目标接受或拒绝消息,然后再返回。 如果消息已传递,则 send
函数返回 true
,否则返回 false
。 由于 send
函数是同步工作的,因此 send
函数在返回之前会等待目标接收消息。
相反,asend
函数在返回之前不会等待目标接受或拒绝消息。 如果目标接受消息并且最终将接收该消息,则 asend
函数返回 true
。 否则,asend
返回 false
,指示目标拒绝了消息或推迟了有关是否接收消息的决定。
[返回页首]
receive 和 try_receive
concurrency::receive 和 concurrency::try_receive 函数从给定的源读取数据。 receive
函数会等待数据变为可用,而 try_receive
函数会立即返回。
如果必须具有数据才能继续操作,请使用 receive
函数。 如果不能阻止当前上下文,或者不需要数据就能继续操作,请使用 try_receive
函数。
[返回页首]
示例
有关使用 send
、asend
和 receive
函数的示例,请参阅以下主题:
[返回页首]