如何使用setInterval创建一个简单的计时器以每秒执行一个乐趣



我是 kotlin 的新手。我想创建一个简单的计时器来每秒执行fun。我已经研究了一些方法,并找到了SetInterval。但是我不明白如何在代码中实现。我只需要每秒执行println("Hello, world!")

我不知道setInterval(请注意,仅是JS平台!),但是如果您想打印" Hello World!"每秒钟,这是一个解决方案

fun doEverySeconds(action: () -> Unit) {
    thread {
        while (true) {
            action()
            Thread.sleep(1000)
        }
    }
}

然后您可以像这样使用

fun main(args: Array<String>) {
    doEverySeconds {
        println("Hello world !")
    }
}

或作为参数的时间

fun doEveryX(timeInMS : Long, action: () -> Unit) {
    thread {
        while (true) {
            action()
            Thread.sleep(timeInMS)
        }
    }
}
fun main(args: Array<String>) {
    doEveryX(1200) {
        println("Hello world !")
    }
}

要添加到User3491043的答案中,我还想指出您可以使用Coroutines Java的Timer#scheduleAtFixedRate

这是一个使用Coroutines的示例:

async {
    while (true) {
        // Do whatever
        delay(interval)
    }
}

最新更新