07. marts 2006 - 12:42Der er
8 kommentarer og 1 løsning
Opdater GUI fra flere forskellige tråde?
Jeg sidder og roder med et program (WinForm), som opretter to tråde, som hver skal melde tilbage til GUI'en, og opdatere hver sin RichTextBox.
I starten kørte jeg kun med en enkelt tråd, og havde lavet en thread-safe metode til at opdatere boksen på (vha. delegate/invoke). Det fungerede rigtigt fint - lige indtil jeg tilføjede tråd nr. to, som skulle opdatere en anden box.
Jeg lavede igen en selvstændig metode med en delegate til, som skulle bruges til det tilfælde, men det fungerer ikke. Programmet crasher og melder at tråden er opdateret "unsafe".
Så jeg tænkte på om jeg mangler noget lock/synchronize, siden der nu er to tråde der egentligt kæmper om at få lov til at bruge en metode på hoved/gui-tråden... Har rodet lidt med det, men er ikke kommet frem til noget brugbart.
Jeg vil helst ikke rode mig ud i at lave nogle unsafe kald i mit program, og desuden må det vel være muligt på en threadsafe måde at tilgå GUI'en fra flere forskellige tråde...
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.