ERLEDIGT
NEIN
NEIN
ANTWORTEN
1
1
ZUGRIFFE
261
261
EMPFEHLEN
-
01.08.07 23:05 #1
- Registriert seit
- Dec 2005
- Beiträge
- 34
Hi!
Habe noch nicht sehr viel mit Threads rumgemacht, aber wie es grundsätzlich geht, weiß ich.
Folgendes Programm habe ich gemacht:
Es sollen bis zu 10 Dateien per HTTP heruntergeladen werden. An sich kein Problem.
Ich habe für jede Datei eine Klasse, damit ich ein paar Daten damit verwalten kann.
In dieser Klasse habe ich eine Methode, die die Datei herunterlädt.
Außerhalb der Klasse werden in einer Schleife die bis zu 10 Objekte, in einem Array angelegt, wie gefolgt angesprochen:
Code :1 2 3 4 5
Dim File(9) as Datei 'zunächst werden sie natürlich initialisiert (File(x) = new Datei("http://...")) ... For i as Integer = 0 to 9 File(i).t.Start() 'Thread aufrufen, der die Datei herunterladen soll Next
Wobei t der Thread ist, der für das herunterladen zuständig ist, d.h. er ist in der Klasse Datei so deklariert:
Code :1
Public t as New Thread(AddressOf Download)
und die Methode so:
Code :1 2 3 4
Sub Download() Dim req as HttpWebRequest = WebRequest.Create(URL) ... End Sub
Damit ich den Status mit verfolgen kann, habe ich nach dem Threadabruf eine grafische Statusänderung eingebaut. Bevor ich auf Threads "umgestiegen" bin und sequentiell die Dateien heruntergeladen wurden, ging es auch noch. Doch nun bleibt das Programm an dieser Stelle (t.Start()) stehen, d.h. keine Statusänderung erfolgt, aber schiebe ich den Befehl zur Statusänderung vor t.Start(), so zählt er auf 10...
Kann man sich das so etwa vorstellen?
Wo kann das Problem liegen?
Darf ich keine Arrays verwenden bzw habe ich etwas nicht beachtet von dem ich leider noch keine Ahnung habe?
Mein Problem ist, dass ich das Programm nicht debuggen kann: Auf einem PC hab ich kein Internet, auf dem anderen kein .NET...
Kann nur per MsgBoxes einigermaßen Problemstellen analysieren, aber wie gesagt, das einzige was ich feststellen kann, ist, dass der Hauptthread bis vor den ersten Threadaufruf geht und die Threads (t) nie ausgeführt werden...
Danke im Voraus!Geändert von proprogger (01.08.07 um 23:44 Uhr)
-
02.08.07 10:33 #2
- Registriert seit
- Dec 2005
- Beiträge
- 34
OK, ich glaube ich habe den Fehler gefunden:
Ich habe den Thread zum herunterladen in den Konstruktor der Datei-Klasse reingepackt (Initialisierung des Threads und Start), d.h. der Thread wird nun nicht mehr "von außen" sondern "von innen" gestartet. Nun gehts zumindest soweit wie ich getestet habe (hab ziemlich viel rauskommentiert, deswegen passiert jetzt fast nix mehr...)
Ähnliche Themen
-
Bitte hilfe bei meinem Screen Shot Programm PLS schnelle hilfe
Von Roma3 im Forum Visual Basic 6.0Antworten: 2Letzter Beitrag: 12.02.08, 19:26 -
Threading hilfe
Von Fridulin im Forum .NET ArchivAntworten: 6Letzter Beitrag: 05.04.05, 14:37 -
HILFE! Morgen Arbeit! Anfängerfragen..bitte um Hilfe!
Von Da Damn Cam im Forum Delphi, Kylix, PascalAntworten: 2Letzter Beitrag: 04.10.04, 15:24 -
BITTE BITTE HILFE ''Laufzeitfehler 713'
Von anyaa im Forum Visual Basic 6.0Antworten: 2Letzter Beitrag: 26.04.04, 10:44





Zitieren
Login





