我正在尝试创建一个简单的本地Kotlin项目。我希望我的项目在过程中等待X millisec:
import kotlin.concurrent
fun main() {
Thread.sleep(500);
println("Hello world")
}
要编译的命令:
kotlinc main.kt -o program.exe
但是出现以下错误:
main.kt:1:15: error: unresolved reference: concurrent
import kotlin.concurrent
^
main.kt:4:2: error: unresolved reference: Thread
Thread.sleep(500);
^
我有点困惑,这不是延迟申请的正确方法吗?
答案 0 :(得分:3)
如果您需要比秒更精确,您可以像这样使用 nanosleep
函数:
import platform.posix.nanosleep
import platform.posix.timespec
// ...
val time = cValue<timespec> {
tv_sec = 2
tv_nsec = 500000000
}
nanosleep(time, null)
tv_sec
是睡眠的秒数tv_nsec
是额外的睡眠纳秒数(0 到 999999999)上面的例子等待了 2.5 秒。
答案 1 :(得分:1)
首先,Kotlin / Native具有kotlin.native.concurrent
库,这就是第一个错误的原因。但是即使在这一版本中,也没有Thread.sleep()
这样的功能。相反,您可以尝试使用K / N的POSIX内置库中的platform.posix.sleep()
函数。我不确定这种方法的用例是什么,但是如果您确实需要保留线程,这可能会有所帮助。