다음 코드는 프로그램에서 두 번째로 메서드를 java.lang.IllegalThreadStateException: Thread already started
호출 할 때 연결됩니다 .start()
updateUI.join();
if (!updateUI.isAlive())
updateUI.start();
이것은 일 두 번째 시간 updateUI.start()
이라고합니다. 나는 그것을 여러 번 밟았고 스레드가 호출되고 updateUI.start()
.
호출 updateUI.run()
은 오류를 피하지만 스레드가 UI 스레드 (SO의 다른 게시물에서 언급 한 호출 스레드)에서 실행되도록합니다. 이것은 내가 원하는 것이 아닙니다.
스레드 는 한 번만 시작할 수 있습니까 ? 그렇다면 스레드를 다시 실행하려면 어떻게해야합니까? 이 특정 스레드는 UI 스레드에서 수행 한 것보다 스레드에서 수행하지 않고 사용자가 비합리적으로 오래 기다릴 경우 백그라운드에서 계산을 수행합니다.