Donnerstag, 15. November 2007

Callable<T>

Will man eine Berechnung mit Display.syncExec(runnable) im Display-Thread laufen lassen und danach das Resultat abholen, steht man vor dem Problem, dass ein Runnable keinen Rückgabewert hat. Eine mögliche (aber schlechte) Lösung wäre, das Resultat des Runnables in einer Klassenvariablen zu speichern und danach auf diese zuzugreifen.

Um diese Einschränkung zu umgehen, gibt es nun die Klasse Callable. Mit dieser kann das Problem nun wie im folgenden Beispiel gelöst werden.

Callable<Date> callable = new Callable<Date>() {
public Date call() {
return sucheBisText.getDate();
}
};
getDisplay().syncExec(callable);
Date date = callable.getResult();

Keine Kommentare: