Einzelnen Beitrag anzeigen

Benutzerbild von dizzy
dizzy

Registriert seit: 26. Nov 2003
Ort: Lünen
1.932 Beiträge
 
Delphi 7 Enterprise
 
#12

Re: TThread-Execute wird nicht ausgefürhrt warum ?

  Alt 30. Jul 2004, 16:28
Wenn z.B. in der Methode "onE" eine Zeile: "Form1.Memo1.Lines.Clear;" vorkommt, dann schreib dir dafür eine eigene Methode - z.B.:
Delphi-Quellcode:
procedure TMyThread.ClearLines;
begin
  Form1.Memo1.Lines.Clear;
end;
und in der Methode "onE" dann aufrufen mit:
Delphi-Quellcode:
procedure TMyThread.onE;
begin
.
.
  Synchronized(ClearLines); // an Stelle von Form1.Memo1.Lines.Clear;
.
.
end;
Das Problem ist, dass du in deinem Thread ja NUR die Methode "onE" ausführst, und wenn diese dann komplett Synchronized ausgeführt wird, dann wird dein 2. Thread vollständig im Hauptthread ausgeführt, was man ja gerade mit Threads verhindern will. Also sollte an so wenig Stellen wie möglich Synchronized werden.

Zeig doch wenn es noch nicht klar ist die "onE" - evtl. kann man's am konkreten Bsp. besser erklären.


dizzy

\\edits: Schlechtschreibdinger...
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel
  Mit Zitat antworten Zitat