Entwickler-Ecke

Windows API - Keinen Plan von Threads...


MDX - Mo 25.05.09 02:40
Titel: Keinen Plan von Threads...
Hallo EE-ler

wie der Titel schon sagt, habe ich leider keinen Plan von Threads.
Ich möchte mit einem neuem Thread einfach einen Download starten.
Dafür müsste ich nur folgende Funktion irgendwie in den neuen Thread reinpacken.

Funktion:

Delphi-Quelltext
1:
download(Source, Output, Url:String);                    

Source=z.B.: http://www.delphi-forum.de/graphics/DT2009Header.png
OutPut=C:\MyFolder\test.rar
Url=http://www.delphi-forum.de/posting.php?mode=newtopic&f=10 (Wo das Bild gefunden wurde)

Dann soll der Thread einfach die Datei runterladen und, da die Datei über nen neuen Thread heruntergeladen wird, das Programms soll nicht hängen.

Hoffe ihr habt ne SIMPLE Lösung

MFG
David

BTW: Hab mir schon etliche Tutorials durchgelesen, auch das von Luckie, aber ich raffs einfach nicht....


uko - Mo 25.05.09 04:42

Hi,

Threadklasse erstellen und in der Execute Methode den Download rein.
http://www.delphi-library.de/viewtopic.php?t=16627&highlight=threads%20tutorial


Grüße,
Uli


MDX - Mo 25.05.09 15:47

Und wie übergebe ich der Execute Methode bitte die 3 Parameter???


uko - Mo 25.05.09 16:00

Hi,

der Execute-Methode gar nicht. Du erstellst den Thread suspended (Create-Parameter), dann übergibst Du die Parameter der Klasse, indem Du sie als Properties schreibst oder per Methode übergibst und in Feld-Variablen speicherst. Und auf die greift dann die Execute-Methode zu (Thread mit Resume starten).

Grüße,
Uli


Yogu - Mo 25.05.09 16:01

Die Parameter übergibst du nicht Execute, sondern dem Konstruktor. Dieser speichert sie dann in lokalen Feldern - und Execute kann bequem darauf zugreifen.


Kha - Mo 25.05.09 16:33

user profile iconMDX hat folgendes geschrieben Zum zitierten Posting springen:
Ich möchte mit einem neuem Thread einfach einen Download starten.
Dafür brauchst du keinen eigenen Thread, es sollte schon eine asynchrone Methode dafür geben.

Edit: Anscheinend kann Indy das nicht, merkwürdig.