Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
本机Kotlin项目中的Thread.sleep()_Kotlin_Kotlin Native - Fatal编程技术网

本机Kotlin项目中的Thread.sleep()

本机Kotlin项目中的Thread.sleep(),kotlin,kotlin-native,Kotlin,Kotlin Native,我正在尝试创建一个简单的本地Kotlin项目。我希望我的项目在进程中等待X毫秒: 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 kotli

我正在尝试创建一个简单的本地Kotlin项目。我希望我的项目在进程中等待X毫秒:

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);
        ^

我有点困惑,这不是延迟我的应用程序的正确方法吗?

首先,Kotlin/Native有
Kotlin.Native.concurrent
库,这就是第一个错误的原因。但即使在这个函数中,也没有像
Thread.sleep()
这样的函数。相反,您可以尝试使用posix内置库K/N中的
platform.posix.sleep()
函数。我不确定这种方法的用例是什么,但如果您确实需要保留线程,这可能会有所帮助。

如果您需要比秒更精确,您可以像这样使用
nanosleep
功能:

import platform.posix.nanosleep
import platform.posix.timespec

// ...

val time = cValue<timespec> {
    tv_sec = 2
    tv_nsec = 500000000
}

nanosleep(time, null)
import platform.posix.nanosleep
导入platform.posix.timespec
// ...
val时间=cValue{
电视秒=2
tv_nsec=500000000
}
纳秒睡眠(时间,空)
  • tv_sec
    是睡眠的秒数
  • tv\u nsec
    是睡眠的额外纳秒数(0到99999999)

上面的示例等待2.5秒。

游乐场可以工作,但这不是Kotlin nativegetting
未解析引用:delay
,即使在使用
导入kotlinx.coroutines
时,您是否找到了与此相关的内容?请注意
platform.posix.sleep()
仅接受整数秒作为参数。所以问题中的500ms不可能使用该API。