后台线程
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 秒后更改,线程已完成您的要求。
所以我想创建一个 运行 的线程,直到我关闭应用程序。 但我不知道如何使用 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 秒后更改,线程已完成您的要求。