# Methodenaufruf nach Aufgabenabschluss in Asynch-Methode



## OnDemand (26. Jun 2015)

Hallo zusammen,

ich habe eine Methode die Asynch läuft und mehrere Files herunterlädt.
Frage 1: Eine Asynch-Methode wird aus dem Main-Thread "ausgekoppelt" und läuft unabhängig vom Haupthread, richtig?

Nun startet mein Haupthread diese Methode mehrfach und nach dem herunterladen aller Dateien, sollen diese gelesen werden. Wenn ich Die "Lesemethode" nach dem starten der Download-Methode aufrufe, dann kann es sein, dass die Downloads noch gar nicht fertig sind und es beginnt zu lesen > Daten fehlen.

Wie geht man hier am besten vor? Ein Flag in der DB setzen oder wie macht ihr das?


----------



## stg (26. Jun 2015)

Eine Möglichkeit wäre es einfach entsprechende Events zu feuern und darauf zu reagieren..


----------



## RoNa (28. Jun 2015)

Hi, mit welcher JEE Version arbeitest Du? Unter JEE6 kannst Du das Future abfragen, ob es fertig ist. Sehe dazu https://docs.oracle.com/javaee/6/tutorial/doc/gkkqg.html.

Gruß,

Robert


----------



## stg (28. Jun 2015)

RoNa hat gesagt.:


> Hi, mit welcher JEE Version arbeitest Du? Unter JEE6 kannst Du das Future abfragen, ob es fertig ist. Sehe dazu https://docs.oracle.com/javaee/6/tutorial/doc/gkkqg.html.



Übers Future kannst du nicht abfragen, ob die Methode fertig ist, nur ob sie noch ausgeführt wird oder nicht. Das ist ein Unterschied... 
Auf den konkreten Falll hier bezogen würde _isDone_ auch im Fall von fehlgeschlagenen Downloads _true_ zurückgeben. Aber auch das mal außen vor gelassen, müsste man dann auch wieder warten und regelmäßig prüfen, ob alle Downloads fertig sind und andernfalls warten und später erneut prüfen usw..


----------



## OnDemand (19. Sep 2015)

@stg wie meinst du das mit Events feuern? Hast du ein Beispiel?


----------

