后台线程

Background thread

所以我想创建一个 运行 的线程,直到我关闭应用程序。 但我不知道如何使用 TornadoFx

这就是我所拥有的,我收到了 IllegalThreadStateException。

override fun start(stage: Stage) {
    super.start(stage)
    thread {
        Thread.sleep(2000)
        println("running")
    }.start()
}

而且只执行一次,然后线程基本停止,但这可能是因为异常。

您的代码正在做的是使用线程构建器启动一个线程,然后再次在同一个线程上调用 start,因此您得到 IllegalThreadStateException.

原因是 kotlin thread 构建器有一个 start 参数,默认情况下为 true。因此,您只需删除 .start() 调用,线程就会正常启动。您也可以将 start = false 传递给线程构建器,而不是像您那样调用 .start()。

但是,您发布的线程代码只会等待 2 秒,然后打印 "running" 然后退出。默认情况下,线程不是循环,因此在 2 秒后更改,线程已完成您的要求。