Wie kann ich das Ende eines Threads melden?

Ooorndt

Mitglied
Hallo,

ich hab mal eine frage zu Threads. Ich hab eine GUI, auf der ich einen Button betätigen kann, der mir dann bestimmte Dinge in einem Thread erledigt. Durch die Lösung per Thread bleibt die GUI weiterhin bedienbar und das muss auch so sein. Allerdings will ich gerne wissen, wann der Thread fertig ist und ich weiss nicht genau wie ich das machen soll.
Ich dachte vllt über eine Exception, die der thread wirft und die ich in der GUI-Klasse irgendwie abfange. Oder über einen Listener?

Wenn jemand weiss was ich meine und mir helfen kann, dem wär ich sehr dankbar

MfG
Ooorndt
 
Du könntest auch einfach am Ende der Threads einen boolean auf true setzen und darauf prüfen.
 
Hallo,

danke für eure Antworten. ich habe es jetzt so gelöst, dass ich einen eigenen Listener implementiert habe. Die Anleitung dazu gibts sogar hier im Forum: Eigenen Listener schreiben.

Mit Swingworker hab ich mich noch nicht auseinandergesetzt, tu ich aber evtl noch. Soweit ich das verstanden hab überschreibt man dort die done()-Methode mit dem Code, der ausgeführt werden soll, wenn der Thread fertig ist.

MfG
 
Hm, wenn ich das richtig verstanden habe geht es bei wait() und notify() darum, dass man einen Thread warten lässt, bis in einem anderen Thread das notify() gerufen wird. Damit soll verhindert werden, dass beide gleichzeitig auf dieselbe Ressource zugreifen.
Mein GUI läuft btw. nicht in einem extra Thread (an dieser Stelle: wäre das allgemein sinnvoll?).
 
Deine GUI läuft in einem extra Thread und zwar dem EDT (Event Dispatcher Thread). Aber ich wüsste nicht wie wait() und notify() hier großartig weiterhelfen sollen, weil er ja eine Rückmeldung geben möchte wenn der Thread zu Ende ist und nicht auf den Thread warten möchte.
 

Zurück
Oben