Einzelnen Beitrag anzeigen

SyntaxXx

Registriert seit: 14. Dez 2008
328 Beiträge
 
Delphi XE4 Architect
 
#1

Multithreading oder falsch verstanden

  Alt 1. Mai 2013, 19:32
Ich habe da mal eine Frage.
Ich möchte mich jetzt mit der Thread - Programmierung beschäftigen und frage mich jetzt, ob ich das Thema überhaupt richig verstanden habe.

Ein kleines Beispiel:
Ich habe ein Programm, welches Daten aus dem Internet lädt.
Wenn ich das ganze ohne irgendwelche Threads benutze, hängt sich mein Programm auf, so lange es arbeitet.
Persönlich finde ich das überhaupt nicht schön.

Jetzt habe ich mir einfach die Komponente "IdThreadComponent" auf meine Form gezogen und das laden der Dateien in die Prozedure "IdThreadComponent1Run" kopiert.
Nun starte ich ich diesen "Thread"? mit IdThreadComponent1.Start.

Jetzt kann ich das Programm noch bewegen bzw andere Sachen ausgeben lassen, wärend die Daten geladen werden.
Jetzt stellt sich mir die Frage, ist das eine richtige Verwendung von einem Thread?
Oder haben Threads eigentlich eine andere Aufgabe und mein Beispiel ist nur ein netter Nebeneffekt?


Das zweite ist folgendes.

Jetzt habe ich zwei Prozeduren, die was anderes machen, aber das Programm zum hängen bringen, wärend die Prozeduren ausgeführt werden.
Diese Prozeduren möchte ich aber unabhängig von einander starten können.
Wie stelle ich das jetzt an?

Muss ich jetzt die IdThreadComponente mehrmals auf meine Form ziehen, oder wie kann ich das Problem lösen?



Und die letzte Sache ist folgendes.
Ich möchte jetzt mehrere Quelltexte von Seiten laden.
Das möchte ich aber nicht hintereinander machen, sondern mit mehreren Threads "gleichzeitig".
Doch wie kann ich jetzt mehrere Threads erstellen?
Funktioniert das auch mit der IdThreadComponent oder wie stelle ich das an?

Und wie weise ich den Threads in meinem Falle die URLs zu?


Es handelt sich nur um ein Beispiel.
Ob es nun Sinn macht sei dahin gestellt.
Aber was besseres viel mir gerade nicht ein


Ich hoffe, ihr könnt da ein wenig Licht ins Dunkel bringen.
  Mit Zitat antworten Zitat