Strukturierungsproblem (mutlithreading)

Status
Nicht offen für weitere Antworten.

SebiB90

Top Contributor
Hab da ein Problem, wie ich das folgende problem beheben könnte bzw wie ich das besser machen könnte von der strukturierung.
also ich hab für die actions,die ich den MenuItems hinzufüge, jeweils eine eigenen Klasse gemacht. Da man den Grafikthread nicht so lange aufhalten sollte, hab ich eine neue Klasse angelegt "Task" die von AbstractAction erbt und da hab ich die actionPerformed methode so implementiert das sie ein thread startet, der die abstracte methode finish() aufruft. so behinder ich den grafikthread nicht mehr wenn ich ein neuen thread starte. jetzt erben all meine action von task und ich überschreib immer nur die finish() methode. wenn ich jetzt aber in finish() ein Fortschrittanzeige im einem dialog einbaue, weil die aufgabe bischen länger dauert, kann ich, da der Grafikthread nicht durch etwas behindert ist, einfach das Hauptfenster schließen und das will ich verhindern. Wenn ich jetzt den Dialog auf modal setze kann ja der prozess nicht weiterlaufen und noch ein neuen thread erstellen ist doch auch nicht das wahre oder?

wie soll ich das problem jetzt lösen oder würdet ihr das ganze ganz anders aufbauen?
 
B

Beni

Gast
Der EventDispatcherthread startet zuerst den Task-Thread, und öffnet dann den modalen Dialog. Geschlossen werden kann der Dialog dann von Taskthread aus :wink:

Nur wenn der Taskthread zu schnell ist, könnte es Probleme geben (der Dialog zu spät geöffnet werden)... weiss gerade nicht, wie man das elegant löst.
 

SebiB90

Top Contributor
Beni hat gesagt.:
Der EventDispatcherthread startet zuerst den Task-Thread, und öffnet dann den modalen Dialog. Geschlossen werden kann der Dialog dann von Taskthread aus :wink:

Nur wenn der Taskthread zu schnell ist, könnte es Probleme geben (der Dialog zu spät geöffnet werden)... weiss gerade nicht, wie man das elegant löst.
entweder hast du mich nicht richtig verstanden oder ich versteh dich nicht ???:L
 
Status
Nicht offen für weitere Antworten.

Oben