Multi-Treading C#

Status
Niet open voor verdere reacties.

as1

Gebruiker
Lid geworden
22 mrt 2009
Berichten
305
Hallo mensen,
Ik ben nog vrij nieuw met c# en mij is gevraagd een simpele downloader met statustext en progress e.d. te maken

Nou heb ik een simpel labeltje gemaakt. maar als ik de app launch en hem laat downloaden zegt visual studio:

Code:
Cross-thread operation not valid: Control 'StatusTxt' accessed from a thread other than the thread it was created on.

dus ik heb op die help-site van MS gekeken maar daar word ik ook niet veel wijzer van.

ik heb in dit project vooral code snippets gebruikt en verder mijn eigen kennis. maar hoe werkt dat multi-threading gebeuren?

en hoe kan ik DMV deze snippet: http://www.devtoolshed.com/content/c-download-file-progress-bar de download snelheid berekenen en weer updaten in een ander label.

alvast bedankt.
MVG
AS1
 
Je kan vanuit een andere thread dan de thread waar de form op is gemaakt, dat is inderdaad erg vervelend als je direct iets wilt aanpassen vanuit een secundaire thread, maar er is een oplossing.

Je kan via Invoke vanuit een secundaire thread een functie aanroepen die dan op de eerste thread wordt uitgevoerd, dat lijkt misschien apart, maar de form objecten zijn niet 'Thread safe' zoals dat heet.

http://blogs.msdn.com/b/csharpfaq/archive/2004/03/17/91685.aspx hier kan je zien hoe je een functie kan 'invoken' die een label of een willekeurig ander element in je form update.

veel succes :thumb:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan