Forum: Sonstige Fragen zu Delphi
Delphi
by Chris.R,
9. Okt 2009
Hallo monty.ms,
du rufts ja nur eine Methode der Thread Klasse auf, die wird aber in dem aufrufenden Thread (z.B. Hauptthread) ausgeführt.
Und du brauchst auch im Thread eine CS um deine Funktionen, die auf die StringList zugreifen. Wenn da das nicht machen
würdest, dann könnte es vorkommen, das du gerade einen neuen Eintrag hinzufügst, während du im Thread grad einen Eintrag
löschst und...
Forum: Sonstige Fragen zu Delphi
Delphi
by Chris.R,
9. Okt 2009
Hallo,
@monty.ms: Der Hauptthread muss die CS auch nicht kennen, da er einfach über die Methode AddSLItem neue Einträge hinzufügt
und in der Funktion wird ja die CS benutzt. Soweit klar?
Ciao Chris
Forum: Sonstige Fragen zu Delphi
Delphi
by Chris.R,
8. Okt 2009
Hallo,
wenn du Daten an den Thread übergeben willst, während er läuft, dann musst den Zugriff immer synchronisieren.
Z.B. mit einer CriticalSection
constructor TTestThread.Create;
begin
Inherited Create(true);
FCriticalSection := TCriticalSection.Create;
Forum: Sonstige Fragen zu Delphi
Delphi
by Chris.R,
8. Okt 2009
Hallo,
zu erstens: Richtig, du musst auch Events über Synchronize aufrufen, wenn sie außerhalb des Threads verarbeitet werden,
da ein Event nichts anderes ist, als ein Methodenaufruf.
zu zweitens: Wenn du die StringList erstellst, bevor der Thread startet (also CreateSuspended = true) und der Thread dann die StringList wieder frei gibt,
kein Problem.
Das kannst du dann aber auch so...