Wie man einen Wert abruft, der für einen anderen Thread berechnet werden muss
In vielen Fällen erfordert Thread A einen Wert, der für Thread B berechnet werden muss. (Am häufigsten ist B == EDT.) Betrachten Sie dieses Beispiel:
String host;
SwingUtilities.invokeAndWait(new Runnable() {
public void run() {
host = JOptionPane.showInputDialog("Enter host name: ");
}
});
openConnection(host);
Natürlich kompiliert dies nicht, da die anonyme innere Klasse nicht in @ schreiben darhost
. Was ist der einfachste und sauberste Weg, um dies zum Laufen zu bringen? Ich habe die Möglichkeiten, die ich kenne, unten aufgeführt.