Mit „ausgeführt“ ist der Aufruf von execute() gemeint?
In den meisten Fällen ist es vermutlich sinnvoll den Worker aus dem Controller heraus zu starten. Hängt aber auch davon ab, was dieser genau erledigen soll.
Ich kann mir aber auch Szenarien vorstellen, in denen er aus dem Model heraus gestartet wird. Auch aus der View heraus wäre das denkbar und technisch möglich…
So ganz verstehe ich aber nicht worauf die Frage hinauslaufen soll…
das dürfte ein technisches Detail, vom MVC-Konzept unabhängig sein
@ headnut
da ich hier gerade schreibe (wobei ich eigentlich dachte dass mir noch mehr als eine Zeile oben einfällt, aber dann irgendwie doch nicht),
kann ich gleich hier im Posting hinweisen, durchaus auch ein wenig zur allgemeinen Verbreitung:
automatisch hinzugefügte Zeilen wie
“Sent from my …Phone using … - now Free”
sind doch einfach nur eine Zumutung, oder?
aus Respekt vor anderen sollte man seine Eingabegeräte doch soweit unter Kontrolle haben, entsprechendes vorher auszuschalten,
suche im Internet danach falls nicht bekannt
da sogar ein Link dabei ist, werde ich den gleich entfernen, aber wichtig ist dass es gar nicht erst dazu kommt
Ja, im Model ist vielleicht eine etwas blöde Idee. Hatte da wohl eher an einen normalen Thread gedacht, da ich SwingWorker eigentlich nicht nutze…
Aber wie gesagt ist das ganze vom MVC unabhängig. Relevant ist welcher Prozess vom Worker abgebildet wird, dementsprechend ist er in die passende Komponente einzubinden.
[QUOTE=_Michael;71759]
Aber wie gesagt ist das ganze vom MVC unabhängig. Relevant ist welcher Prozess vom Worker abgebildet wird, dementsprechend ist er in die passende Komponente einzubinden.[/QUOTE]
Ja nicht ganz, weil je nachdem wo das Model dann Änderungen erfährt, können die “ModelChangeEvents” in einem Hintergrund Thread gefeuert werden, so dass man in der UI oder Controller aufpassen muss und sich wieder richtige in den UI-Thread(EDT) synchronosiert.
Hehe, wie gesagt wenn du aus dem SwingWorker dein Model änderst und die Events in der View oder einer anderen View fängst, dann denk daran dass du in einem Background Thread bist und dich zum EDT synchronsieren (SwingUtillities#invokeLater) musst, bevor du die UI änderst…
Nicht nur Anfänger, hab auch schon erfahrene Entwickler erlebt, die das nicht beachtet haben.
Das Problem bei Swing ist, dass du leider keine Exception bekommst. Bei SWT wird eine Fehlermeldung geschmissen, wenn man sowas macht.