Guten Tag alle zusammen,
hier nun ein Thread Frage: In meinem Projekt habe ich eigentlich nur einen extra Thread, der die Arbeit macht und per Controller (MVP Pattern) die GUI aktualisiert.
In diesem Szenario:
Ist es da wichtig die eigentlichen Änderungen (setText() etc, der JComponents im View) per SwingUtilities.invokeLater( ... ) zu kapseln? Ich weiss, dass bis auf ein paar Ausnahmen Swing nicht Threadsafe ist. Also müsste man verhindern, dass zwei Threads gleichzeitig auf einen setter zugreifen.
Muss man diese Vorkehrung auch noch treffen, wenn es nur einen Thread gibt, der einen solchen Zugriff macht?
Ich hab es mal mit beiden Varianten implementiert. Also mit den SwingUtilities und ohne. --> Kein Unterschied in der Ausführung des Programms.
Darum eben diese Frage. Ist die SwingUtilities Sache zwingend nötig? Oder gehört das "nur" zum guten Ton?
Gruß,
Michael
hier nun ein Thread Frage: In meinem Projekt habe ich eigentlich nur einen extra Thread, der die Arbeit macht und per Controller (MVP Pattern) die GUI aktualisiert.
In diesem Szenario:
Ist es da wichtig die eigentlichen Änderungen (setText() etc, der JComponents im View) per SwingUtilities.invokeLater( ... ) zu kapseln? Ich weiss, dass bis auf ein paar Ausnahmen Swing nicht Threadsafe ist. Also müsste man verhindern, dass zwei Threads gleichzeitig auf einen setter zugreifen.
Muss man diese Vorkehrung auch noch treffen, wenn es nur einen Thread gibt, der einen solchen Zugriff macht?
Ich hab es mal mit beiden Varianten implementiert. Also mit den SwingUtilities und ohne. --> Kein Unterschied in der Ausführung des Programms.
Darum eben diese Frage. Ist die SwingUtilities Sache zwingend nötig? Oder gehört das "nur" zum guten Ton?
Gruß,
Michael