AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Indy Download in einem extra Thread ausführen?
Thema durchsuchen
Ansicht
Themen-Optionen

Indy Download in einem extra Thread ausführen?

Ein Thema von nomad · begonnen am 28. Okt 2003 · letzter Beitrag vom 28. Okt 2003
Antwort Antwort
nomad

Registriert seit: 28. Okt 2003
2 Beiträge
 
#1

Indy Download in einem extra Thread ausführen?

  Alt 28. Okt 2003, 17:58
Erstmal ein freundliches Hallo an die Community

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:
//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;
woraufhin auch der Thread gestartet wird:

Delphi-Quellcode:
//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;
Das Problem bleibt allerdings immer noch bestehen, die Applikation hängt solange Indy am downladen ist...

Ich hoffe mir kann irgendjemand sagen was ich falsch mache.

Mit freundlichen Grüssen,
nomad
Angehängte Dateien
Dateityp: zip indythread.zip (1,8 KB, 26x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Indy Download in einem extra Thread ausführen?

  Alt 28. Okt 2003, 18:16
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;
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
nomad

Registriert seit: 28. Okt 2003
2 Beiträge
 
#3

Re: Indy Download in einem extra Thread ausführen?

  Alt 28. Okt 2003, 22:34
Ja doch, das macht sinn

Vielen Dank für die schnelle Hilfe, nun klappt es einwandfrei
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:16 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz