Zitat von
nailor:
jetzt allerdings nochmal zum "kommunizieren mit der außenwelt": angenommen, mein thread soll regelmäßig irgendwelche lebenszeichen und fortschrittsangaben nach außen funken. ist es dann am geschicktesten, die rechen-methode normal (ohne synchro) laufen zu lassen, und von zeit zu zeit über "synchronize(IchLebeNoch(UndDasIstMeinFortschritt) )" dem hauptteil meines programmes bescheidzusagen, wie es um den thread steht?
und wie kann ich im hauptprogramm rausfinden, ob der thread noch am laufen its, oder nicht. irgendwie hab ich keine möglichkeit gefunden, außer dass der thread selbst vor dem beenden bescheid gibt, aber dann ist er ja noch nicht ganz fertig...
Am performantesten wird es sein, die Statusinformationen in eine Variable zu schreiben (dessen Adresse man zum Beispiel dem Thread als Property mitgeben kann oder die statisch sein könnte falls nur ein Thread läuft...).
Dann wird der Thread nur solange aufgehalten, wie die Variable durch das Auslesen des Hautpthreads blockiert ist (dass die Variable/Struktur zum Lesen/Schreiben gelockt wird, setze ich einfach mal als selbstverständlich voraus
).
Gruss Nico