Le code suivant mène à la "java.lang.IllegalThreadStateException: Fil déjà commencé." la deuxième fois qu'il est exécuté par le programme.
updateUI.join();
if (!updateUI.isAlive())
updateUI.start();
Ce qui se passe à la deuxième temps d' updateUI.start()
est appelé. J'ai franchi plusieurs fois, et le thread est appelé et complètement effectue un cycle complet avant de frapper updateUI.start()
.
Appelant updateUI.run()
évite l'erreur, mais provoque le thread à exécuter dans le thread de l'INTERFACE utilisateur (le thread appelant, comme mentionné dans d'autres postes sur), ce qui n'est pas ce que je veux.
Un Fil être commencé qu'une seule fois? Si donc, que ce que dois-je faire si je veux exécuter le fil à nouveau? Ce thread est en train de faire certains calculs dans le fond, si je ne le fais pas dans le thread que c'est fait dans le thread de l'INTERFACE utilisateur et l'utilisateur dispose d'un trop long d'attendre.