Einzelnen Beitrag anzeigen

SyntaxXx

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

Threads mit TThread Klasse

  Alt 13. Jul 2014, 11:12
Guten Tag DP-Community,
ich habe eine Verständnissfrage bezüglich Threads.

Ich habe eine Anwendung geschrieben, die auch wunderbar funktioniert.
Nun möchte ich aber, damit diese beim arbeiten nicht einfriert, Threads benutzen. (Evtl bekomme ich ja sogar noch einen kleinen Geschwindigkeitsschub ^^)
Ich hae mir dazu jetzt eine Threadklasse angelegt.

Jetzt habe ich gelesen, dass man die Execute Prozedur aufruft, welche dann die nötigen anderen Prozeduren und Funktionen aufruft.
Nur weiß ich dann nicht weiter, wie ich das auf meine Anwendung übersetzte.

Meine Anwendung läuft grob wie folgt ab: (Code ist nicht vollständig, nicht lauffähig. Es werden nur wichtige Teile gegannt)

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  variable = workFunction(param1, param2);
end;
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
begin
  list.LoadFromFile(Edit3.Text);

  for i := 0 to list.Count - 1 do
  begin
    variable = workFunction(param1, param2);
  end;
end;
Delphi-Quellcode:
procedure TForm1.Button3Click(Sender: TObject);
begin
  workProcedure(param1);
end;
Delphi-Quellcode:
function TForm1.workFunction(param1: String; param2: String): String;
begin
  // Hier wird Code ausgeführt, der das Programm zum einfrieren bringt.
  // Unter anderem wird die idHTTP Komponente benutzt
end;
Delphi-Quellcode:
procedure TForm1.workProcedure(param1: String);
begin
  // Hier wird auch Code ausgeführt, der das Programm zum einfrieren bringt.
  // Unter anderem werden Einträge einer ListView bearbeitet. Diese Liste kann sehr lang sein.
end;


Nun verstehe ich nicht, was ich machen muss, dass sowohl die Funktion "workFunction()" als auch die Prozedur "workProcedure()" in einem Thread ausgeführt werden.
Wenn ich beides in die Execute Prozedur packe, wird ja immer beides ausgeführt.
Das wäre ja totaler Schwachsinn ^^


Könnt ihr mir erklären, die ich unterschiedliche Prozeduren und Funtkionen in Threads laufen lassen kann?
  Mit Zitat antworten Zitat