如何创建一个简单的计时器,使用setInterval每秒执行一次有趣的事情?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何创建一个简单的计时器,使用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的答案,我还想指出你可以使用协同程序或Java的Timer#scheduleAtFixedRate

以下是使用协同程序的示例:

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

以上是关于如何创建一个简单的计时器,使用setInterval每秒执行一次有趣的事情?的主要内容,如果未能解决你的问题,请参考以下文章

js——定时器

定时器

js缓动动画原理

js缓动动画原理

使用 JavaScript 创建一个兔年春节倒数计时器

C++ 简单的计时器/刻度函数