Kotlin可以使用createCoroutine((函数来创建协同程序。在对这个功能的描述中,我一句话都听不懂。
若要开始执行创建的协程,请在返回的[Containation]实例上调用
resume(Unit)
。
我不知道我的理解是否正确。我认为,在调用resume((函数之前,协程主体不会被执行,而只存在于Continuation对象中。调用resume((函数后,将执行suspend lambda表达式并返回结果。
这是正确的理解吗?
非常感谢你的回答
我相信这是正确的。lambda的结果不会返回给您,而是传递给下一个延续(如果指定的话(。
createCoroutine()
和Continuation
是非常低级的东西,通常你不会直接使用它们。从协同程序上下文之外启动协同程序有一些高级替代方案。如果您不确定是否真的需要使用createCoroutine()
,那么您可能正在寻找:runBlocking((、CoroutineScope((,然后是launch()
或GlobalScope.lonch(((但请阅读GlobalScope
注释(。