Hi,
also auf meinem nicht mehr ganz so jungen Laptop läuft das Programm ganz flüssig.
Wenn Du das allerdings im Debugger laufen läßt kannst du die Performance nicht mehr beurteilen, da der Debugger viel zu viel Leistung verbraucht um deine Threads zu kontrollieren.
Allerdings ist mir aufgefallen, dass du zuviel (nämlich die ganze) Arbeit innerhalb von Synchronize verrichtest.
Delphi-Quellcode:
Procedure TBeispielThread4.DoThread;
begin
randomize;
FMemo.lines.add('Test Thread 4 - '+IntToStr(Random(200)));
end;
Es sollte eigentlich die Berechnung...
Delphi-Quellcode:
...
Randomize; // auch schon hier nicht so toll, nur einmal pro Programminstanz
zufallszahl := Random(200); // zufallszahl = membervariable des threads, ebenso logstring
logstring := 'Test Thread 4 - ' + IntToStr(Zufallszahl);
Synchronize (Ausgabe);
....
von der Ausgabe mit Synchronize getrennt werden.
Delphi-Quellcode:
procedure TThread4.Ausgabe;
begin
FMemo.Lines.Add(logstring);
end;
Es kommt grundsätzlich darauf an, die Zeit innerhalb einer Synchronize ten Methode so kurz wie möglich zu halten, und die zeitaufwändigen Teile innerhalb der Thread.Execute zu halten.
Gruss
[edit]falsche Quelltextformatierung[/edit]