关于kotlin coroutine的基本Api的问题



Kotlin可以使用createCoroutine((函数来创建协同程序。在对这个功能的描述中,我一句话都听不懂。

若要开始执行创建的协程,请在返回的[Containation]实例上调用resume(Unit)

我不知道我的理解是否正确。我认为,在调用resume((函数之前,协程主体不会被执行,而只存在于Continuation对象中。调用resume((函数后,将执行suspend lambda表达式并返回结果。

这是正确的理解吗?

非常感谢你的回答

我相信这是正确的。lambda的结果不会返回给您,而是传递给下一个延续(如果指定的话(。

createCoroutine()Continuation是非常低级的东西,通常你不会直接使用它们。从协同程序上下文之外启动协同程序有一些高级替代方案。如果您不确定是否真的需要使用createCoroutine(),那么您可能正在寻找:runBlocking((、CoroutineScope((,然后是launch()或GlobalScope.lonch(((但请阅读GlobalScope注释(。

最新更新