Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.170 Beiträge
 
Delphi 12 Athens
 
#2

Re: Wie synchroniziere ich mehrere Threads richtig

  Alt 1. Apr 2009, 07:21
Syncronize ist voll OK ... dein Thread blockiert nur ständig den Hauptthread und läßt ihm keine Zeit für sich.

Delphi-Quellcode:
procedure TTestThread.Execute;
begin
  { Thread-Code hier einfügen }
  while not Terminated do
   begin
     Synchronize(addmain);
     Sleep(20); <<<< freezet nicht
   end;
end;
kaum ist Synchronize fertig, wird es ja sofort wieder aufgerufen ... da bleibt halt kaum Zeit

oder bei kurzen Berechnungen nicht immer Synchronize ausühren
Delphi-Quellcode:
procedure TTestThread.Execute;
var i: integer;
begin
  { Thread-Code hier einfügen }
  while not Terminated do
   begin
     if i mod 20 = 0 then Synchronize(addmain);
     Inc(i);
     Sleep(2);
   end;
end;
stell dir für das Sleep einfach längere/langsamere Berechnungen vor, welche dort gemacht würden oder sowas halt.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat