当我在Kotlin/JVM项目中使用Kotlin协程时,我可以将suspend
关键字添加到程序的主条目中。
import kotlinx.coroutines.*
suspend fun main() {
doWorld()
}
suspend fun doWorld() = coroutineScope {
launch {
delay(1000L)
println("World!")
}
println("Hello")
}
Run example in Kotlin Playground
然而,当我在KotlinNative项目中使用相同的代码时,我在运行时得到一个错误
e: Entry point can not be a suspend function.
我发现a YouTrack issue请求Kotlin Native中的suspend fun main()
支持。
在该特性可用之前,Kotlin Native中suspend fun main()
的等效项是什么?
我在用
- Kotlin/原生版本1.7.22
- Kotlinx协同程序1.6.4
1条答案
按热度按时间mcvgt66p1#
试试这个代码...
你需要从其他协程中调用
doWorld()
方法,或者必须使suspend
函数。目的是将任何线程更改为主线程。