最佳答案
下面的代码导致 java.lang.IllegalThreadStateException: Thread already started
时,我在程序中调用 start()
方法 第二次了。
updateUI.join();
if (!updateUI.isAlive())
updateUI.start();
这发生在 第二调用 updateUI.start()
的时候。我已经逐步通过它多次和线程被调用,并完全运行到完成之前,触发 updateUI.start()
。
调用 updateUI.run()
可以避免错误,但会导致线程在 UI 线程中运行(调用线程,正如在其他关于 SO 的文章中提到的那样) ,这不是我想要的。
一个线程只能是 开始了一次吗?如果是这样,那么如果我想再次运行线程,我该怎么做呢?这个特定的线程在后台进行一些计算,如果我不在线程中进行计算,而是在 UI 线程中进行计算,并且用户有一个不合理的长时间等待。