Einzelnen Beitrag anzeigen

Benutzerbild von thkerkmann
thkerkmann

Registriert seit: 7. Jan 2006
Ort: Pulheim Brauweiler
464 Beiträge
 
Delphi 2010 Professional
 
#29

Re: Fehlermeldung "Element hat kein übergeördnetes Fens

  Alt 18. Feb 2009, 20:39
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]
Thomas Kerkmann
Ich hab noch einen Koffer in Borland.
http://thomaskerkmann.wordpress.com/
  Mit Zitat antworten Zitat