如何将制作人连接到演员?

时间:2017-12-13 00:59:10

标签: kotlin actor kotlinx.coroutines

如何将使用produce 协同程序构建器创建的生产者连接到使用actor协同程序构建器创建的actor?

基本上,我希望producer的发送频道成为actor的接收频道。有没有一种简单的方法可以做到这一点?

我在文档中找不到任何内容,允许我明确指定制作人或演员使用的频道。

1 个答案:

答案 0 :(得分:2)

假设以下定义:

val producer = produce<T> { ... }
val actor = actor<T> { ... }

您可以编写以下代码来启动帮助程序,该程序将所有生成的消息发送给您的actor:

launch { producer.toChannel(actor) }

如果您想等到此复制作业完成,您只需使用producer.toChannel(actor)作为您的协程即可。 toChannel是一个等待处理完成的终端操作。