Ich überarbeite gerade eine Anwendung, die ich threadsicher gemacht habe.Ist JCheckBox.isSelected() threadsicher?
Ich habe eine JCheckBox
, die ich überprüfen muss. Diese JCheckBox
wird im gesamten Programm in verschiedenen Threads referenziert.
Kann ich einfach anrufen checkbox.isSelected()
oder muss ich diesen Anruf mit invokeLater
machen?
Ich finde es schwierig, Nebenläufigkeit im Allgemeinen zu verstehen, aber ich komme langsam, aber sicher. Wenn das eine dumme Frage ist, sag mir bitte, warum ich mein Verständnis besser verstehe.
Vielen Dank.
Ich bin nicht ganz sicher, aber wenn man bedenkt isSelected() sollte lediglich einen Wert zurückgeben, ohne das Kontrollkästchen zu ändern, sollten Sie sein gut ohne die Verwendung von invokeLater. –
gerade gegeben [diese Antwort] (http://Stackoverflow.com/a/1796687/1799530), würde ich sagen nein – SomeJavaGuy
Rufen Sie 'isSelected()' außerhalb der 'EDT'? Wenn Sie beispielsweise eine Verarbeitung in einem Aktionslistener durchführen, gibt es kein Problem. Wenn Sie 'isSelected()' aus normalem Code aufrufen, dann würde ich sagen, dass das eher ein Design-Problem ist und 'invokeLater()' wäre keine sehr geeignete Methode, um es trotzdem zu beheben. – Kayaman