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
Delphi-Quellcode:
constructor TTestThread.Create;
begin
Inherited Create(true);
FCriticalSection := TCriticalSection.Create;
end;
function TTestThread.GetSLItem(AIndex: integer): string;
begin
FCriticalSection.Enter;
try
Result := FSL[AIndex];
finally
FCriticalSection.Leave;
end;
end;
procedure TTestThread.AddSLItem(const s: string);
begin
FCriticalSection.Enter;
try
FSL.Add(s);
finally
FCriticalSection.Leave;
end;
end;
Ist jetzt nicht sonderlich ausgestaltet. Die Methode AddSLItem benutzt du um neue Einträge hinzuzufügen, GetSLItem um einen String aus der Liste abzurufen.
Ciao Chris