O código a seguir leva a java.lang.IllegalThreadStateException: Thread already started
quando chamei o start()
método pela segunda vez no programa.
updateUI.join();
if (!updateUI.isAlive())
updateUI.start();
Isso acontece na segunda vez que updateUI.start()
é chamado. Passei por ele várias vezes e o thread é chamado e executado completamente antes de chegar updateUI.start()
.
Chamar updateUI.run()
evita o erro, mas faz com que o thread seja executado no thread de IU (o thread de chamada, conforme mencionado em outras postagens no SO), que não é o que eu quero.
Um Tópico pode ser iniciado apenas uma vez? Em caso afirmativo, o que devo fazer se quiser executar o tópico novamente? Este thread em particular está fazendo alguns cálculos em segundo plano, se eu não fizer isso no thread, então será feito no thread de interface do usuário e o usuário terá uma espera excessivamente longa.