Hallo zusammen,
ich stehe gerade vor folgendem Problem:
Über die GUI kann der Anwender verschiedene Aktionen durchführen. Diese dauern etwas länger und laufen in einem extra Thread asynchron ab.
Jetzt möchte ich aber an Ergebnisse in diesem Thread dran kommen.
Wie ich gelesen habe gibt es hierfür zwei Möglichkeiten:
Über Callback oder das Future-Pattern.
Ich möchte das Future-Pattern anwenden, wo ich mit der methode get() and das Ergebnis komme:
Schön und gut, aber wenn ich über FutureTask.get() an das Ergebnis will, warte ich doch automatisch bis das Ergebnis da ist. Dann blockiere ich wieder meinen aufrufenden Thread. In meinem Fall die GUI, was ich ja gerade nicht will.
Also ich habe Beispiele dazu angeschaut, aber kein einziges Beispiel gefunden, wo mein Problem beschrieben ist. Oder verstehe ich hier einfach nur etwas falsch?
ich stehe gerade vor folgendem Problem:
Über die GUI kann der Anwender verschiedene Aktionen durchführen. Diese dauern etwas länger und laufen in einem extra Thread asynchron ab.
Jetzt möchte ich aber an Ergebnisse in diesem Thread dran kommen.
Wie ich gelesen habe gibt es hierfür zwei Möglichkeiten:
Über Callback oder das Future-Pattern.
Ich möchte das Future-Pattern anwenden, wo ich mit der methode get() and das Ergebnis komme:
Java:
FutureTask<Integer> t = new FutureTask<Integer>(new HelloWorldCount()); // 1
new Thread(t).start(); // 2
int result = t.get());
Schön und gut, aber wenn ich über FutureTask.get() an das Ergebnis will, warte ich doch automatisch bis das Ergebnis da ist. Dann blockiere ich wieder meinen aufrufenden Thread. In meinem Fall die GUI, was ich ja gerade nicht will.
Also ich habe Beispiele dazu angeschaut, aber kein einziges Beispiel gefunden, wo mein Problem beschrieben ist. Oder verstehe ich hier einfach nur etwas falsch?