![]() |
Indy Download in einem extra Thread ausführen?
Liste der Anhänge anzeigen (Anzahl: 1)
Erstmal ein freundliches Hallo an die Community :hi:
Ich hab mir schon einige Postings und Tutorials zum Thema Threads hier angeschaut, werd aber nicht draus schlau warum ich trotzdem noch Probleme mit meinem Programm hab: Das Programm soll bei klick auf einen Button per Indy TIdHTTP.Get(url) eine recht grosse HTML Datei runterladen... ohne threading allerdings mit dem Nachteil dass das Programm bis zum Ende des Downloads nicht mehr reagiert. Darum hab ich also versucht die Aktion über einen extra Thread auszuführen. Ich starte den Thread nun über den Buttonklick:
Delphi-Quellcode:
woraufhin auch der Thread gestartet wird:
//unit1.pas
procedure TForm1.Button1Click(Sender: TObject); var DLThread: TDLThread; begin Button1.Enabled:=False; DLThread:=TDLThread.Create(True); DLThread.OnTerminate:=ThreadTerminate; DLThread.Resume; Label1.Caption := 'Status: Thread gestartet.'+#13#10+'Lade ca 1MB an Daten runter.'; end;
Delphi-Quellcode:
Das Problem bleibt allerdings immer noch bestehen, die Applikation hängt solange Indy am downladen ist...
//unit2.pas
procedure TDLThread.Execute; begin Synchronize(Download); end; procedure TDLThread.Download; begin Form1.IdHTTP1.Get('http://www.rfc-editor.org/rfc-index2.html'); end; Ich hoffe mir kann irgendjemand sagen was ich falsch mache. Mit freundlichen Grüssen, nomad |
Re: Indy Download in einem extra Thread ausführen?
is klar, weil du syncronice verwendest. erzeuge am besten in deinem Thread eine neue instanz von Tidhttp
also
Delphi-Quellcode:
var http1: TIdhttp;
begin http1 := TIdhttp.create(keineAhnungWelcheParameter); http1.get(blabal...); http1.free; end; |
Re: Indy Download in einem extra Thread ausführen?
Ja doch, das macht sinn :mrgreen:
Vielen Dank für die schnelle Hilfe, nun klappt es einwandfrei :-D |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:29 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz