Hallo zusammen.
Ich habe in einem Konsolenprojekt eine Downloadfunktion geschrieben die mir mit Hilfe des Backgroundworkers den aktuellen Fortschritt anzeigt. Dies funktioniert auch einwandfrei.
Da ich in einem anderen Projekt(Windowsforms) die gleiche Funktion benötige, habe ich diese dort eingebaut. Das Problem ist dass meine Form einfriert sobald der Backgroundworker arbeitet, was ja eigentlich der Backgroundworker verhindern sollte bzw deshalb benutze ich ihn ja. Ich habe dann einiges von meinem Code auskommentiert, sodass im Backgroundworker "nur noch" eine lang andauernde Schleife statt findet. Dann funktioniert es und meine Form friert mir nicht ein. Wenn ich aber meinen Methodenaufruf des Downloads an die Stelle der Schleife setze, friert meine Form wieder ein...
Naja, Code ist ja fast schon selbserklärend aber trotzdem, so bin ich vorgegangen:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| btnClick(...) { Worker.RunWorkerAsync(); }
Worker_DoWork(...) { } |
Es zeigt ja irgendwie alles darauf dass es an der Downloadmethode liegt. Gibt es irgendwelche Vorschriften von Methodenaufrufe innerhalb von Worker_DoWork? Darf die Methode von einer anderen Klasse stammen? Und achja, wieso funktioniert mein Code in einem Konsolen-Projekt aber nicht in einem WinForms-Projekt?
Ich komm einfach nicht weiter und bin somit für jede Hilfe dankbar!
Gruß schnips
Moderiert von
Th69: C#-Tags hinzugefügt