Hej, Hur menar du att du "delegerar uppgiften till maintråden som ska uppdatera progressbaren och labeln"? Tack för svaret och länken, det jag kör nu är en asynkron delegate via BeginInvoke, det var det jag menade. Men den uppdaterades inte ändå. Skrev om och använde reportprogress istället. Fick samma fel, då upptäckte jag att det var fel i en division som gjorde att koden som uppdaterar inte kördes när inte converteringen var 100% klar:(.backgroundWorker och Trådar
Håller på med ett program i C# som bland annat converterar data. När converteringen utförs så har jag en progressbar och en label i en statusstrip som ska visa hur långt det kommit. Problemet är att när jag delegerar uppgiften till maintråden som ska uppdatera progressbaren och labeln så visas det inte. När konverteringen är klar och backgroundWorkern är klar visas det direkt. Provade även att skapa en egen tråd istället för backgroundworkern men med samma resultat.
Det är säkert något enkelt jag missat som jag hoppas ni kan svara på.
Tack på förhand!Sv: backgroundWorker och Trådar
Du kan inte låta arbetstråden uppdatera GUI:t, utan måste låta arbetstråden uppdatera t.ex. en statusvariabel som sedan GUI:t läser av med jämna mellanrum (t.ex. m.h.a. en Timer i GUI:t) och uppdaterar progressbaren och labeln. Alternativt en asynkron delegate via BeginInvoke.
Se t.ex. http://www.awprofessional.com/articles/article.asp?p=459619&seqNum=6&rl=1 för ett exempel på hur man kan göra.
GUI skall BARA uppdateras från GUI-tråden, ALDRIG från andra trådar.
/AndreasSv:backgroundWorker och Trådar
Ska testa vidare och se om jag får ordning på det.Sv: backgroundWorker och Trådar
Men tack för svaret ändå, nu fungerar det finfint.