Hej!
I .NET är de ju så att man måste göra en Control.Invoke för att uppdatera GUI't från en bakgrundstråd. Gör man inte det finns det risk för att konstigheter uppstår.
Är det samma sak i Java och i så fall hur gör man? Jag har provat att skriva till GUI't från en annan tråd än den som skapade det och det verkar fungera, men man vet ju aldrig...
Tack på förhand!
/peter
LimeMedlem sedan sep. 2001961 inlägg Jodå, det går utmärkt. Kolla på Model-View-Controller på t.ex. http://www.cs.wm.edu/~noonan/java/mvc/ och http://java.sun.com/blueprints/patterns/MVC-detailed.html
Går att göra samma sak i Java som i .NET att man från Controller-objektet anropar en metod i GUI-klassen (View) som uppdaterar grafiken. Ett exempel på detta är JList i Swing. Den kan ta en modell och en controller och ha dynamiska data.
Hej o tack för ditt svar!
Är det nödvändigt att göra "control view" anropet?
LimeMedlem sedan sep. 2001961 inlägg Hur menar du?? Att control-objektet anropar den eller de view-objekt som skall uppdateras är en förutsättning för att dessa skall veta att det finns ny data i modellen.
tja... jag försökte återgå till ursprungsfrågan: Kan man skriva till GUI tråden från en bakgrundstråd utan att problem uppstår?
/peter
LimeMedlem sedan sep. 2001961 inlägg JA!
Man inte bara kan, man bör... Om man gör något som ska t.ex. hämta data från en databas eller skriva en fetingfil så vill man inte att GUI:t skall låsa sig. Alltså lägger man själva uppgiften i en egen tråd och när denna sedan är klar så säger den till gui:t
Hela Swing-paketet är uppbyggt med den paradigmen.