Kode berikut mengarah ke java.lang.IllegalThreadStateException: Thread already started
ketika saya memanggil start()
metode kedua kalinya dalam program.
updateUI.join();
if (!updateUI.isAlive())
updateUI.start();
Ini terjadi untuk kedua kalinya updateUI.start()
dipanggil. Saya telah melewatinya beberapa kali dan utas dipanggil dan selesai berjalan sampai selesai sebelum memukul updateUI.start()
.
Memanggil updateUI.run()
menghindari kesalahan tetapi menyebabkan utas berjalan di utas UI (utas pemanggil, seperti yang disebutkan dalam posting lain di SO), yang bukan itu yang saya inginkan.
Bisakah sebuah Thread dimulai hanya sekali? Jika ya, apa yang harus saya lakukan jika saya ingin menjalankan utas lagi? Utas khusus ini melakukan beberapa kalkulasi di latar belakang, jika saya tidak melakukannya di utas daripada yang dilakukan di utas UI dan pengguna harus menunggu terlalu lama.