Avatar billede madiedk Nybegynder
14. september 2008 - 22:40 Der er 10 kommentarer og
1 løsning

Swing Worker vs invokelater - tråde

hej

jeg har læst lidt om tråde i java ifm. swing

men kan ik helt lure forskellen på Swing Worker tråde og invokelater tråde.
Avatar billede arne_v Ekspert
14. september 2008 - 22:49 #1
Jeg er langtfra en ekspert i Swing.

Men som jeg forstaar det saa:

SwingUtilities.invokeLater bruges fra andre traade end event traaden for at udfoere kode
i event traaden (kun kode i event traaden maa opdatere Swing komponenter)

SwingWorker bruges fra event traaden naar man skal lave noget der tager
lang tid )man maa ikke blokere event traaden)
Avatar billede madiedk Nybegynder
14. september 2008 - 23:20 #2
Så hvis det har med swing at gøre kan man vel altid ligesågodt bruge SwingWorker?
Avatar billede arne_v Ekspert
15. september 2008 - 13:10 #3
Nej.

Du skal bruge den som passer til omstaendighederne.
Avatar billede gedfrik Nybegynder
16. september 2008 - 16:29 #4
Hvis du blot skal have dit program til at køre i flere tråde, så er der ingen grund til at bruge SwingWorker. Den har noget funktionalitet der kan hjælpe dig hvis du skal bruge flere oplysninger om dine tråde - F.eks. hvor langt de er i en proces osv.

Som Arne er inde på, så bruges invokeLater til at styre koden fra EDT'en, (EventDispatchThread). Den pågældende metode bliver kørt asynkront på EDT'en og sat bagerst i køen. Hvis ikke dette bruges (man kan sagtens køre flertråds-programmering uden) kan der opstå underlige fejl på vilkårlige tidspunkter.

SwingWorker bruges ikke når man skal lave noget der tager lang tid, men blot når man vil "lytte" til en tråd. For ikke at blokere EDT'en opretter man en ny tråd i sit program som denne metode kan køre i og dermed blokeres EDT'en ikke.
Avatar billede arne_v Ekspert
28. oktober 2008 - 23:39 #5
Tid at få afsluttet her ?
Avatar billede gedfrik Nybegynder
28. oktober 2008 - 23:50 #6
Hvad er definitionen af afsluttet? At OP har forstået svar og er kommet videre i livet, eller at der er givet point? :)
Avatar billede arne_v Ekspert
29. oktober 2008 - 00:06 #7
Sådan en kombination af:
* spørger har fået løst sit problem
* svarere har fået deres point
* dem der læser tråden har en klar indikation af hvad det rette svar var så de ved hvad de kan bruge
* tråden får sit blå flag så den ikke står som ubesvaret
Avatar billede gedfrik Nybegynder
29. oktober 2008 - 00:35 #8
Det lyder plausibelt.. Jeg undrede mig bare lidt over hvorfor du spurgte, derfor mit spørgsmål!
Avatar billede arne_v Ekspert
29. oktober 2008 - 00:56 #9
Jeg forsøger en gang imellem at ryde lidt op i nogle af de uafsluttede spørgsmål jeg
selv deltager i.
Avatar billede madiedk Nybegynder
14. november 2008 - 14:06 #10
tak, smid et svar.
Avatar billede arne_v Ekspert
14. november 2008 - 15:08 #11
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester