Einzelnen Beitrag anzeigen

smudo

Registriert seit: 6. Sep 2005
Ort: Cottbus
362 Beiträge
 
Delphi XE2 Professional
 
#1

Problem mit StringList.SaveToFile im Thread

  Alt 29. Sep 2005, 15:11
Hallo ,

ich möchte das Loggen meiner Anwendung über einen Thread lösen.
Delphi-Quellcode:
//Schreibt den LogPuffer solange nicht mit DoStop abgebrochen wurde
procedure TLogThread.DoWait;
begin
  while (PStop=False) or //eine Abbruchvariable
        (PLogPuffer.Count>0) do //StringList enthält die zu loggenden Zeilen
  begin
    if (PLogPuffer.Count>0) then
    begin
      WriteLog(PLogPuffer[0]); //schreibt eine Zeile <--hier knallts manchmal
      PLogPuffer.Delete(0); //löscht diese Zeile
    end;
  end;
end;
In WriteLog wird wiederum eine StringList PLogs gefüllt. Sollte eine bestimmte Zeilenanzahl erreicht sein,
wird die erste Zeile gelöscht. --> enthält also nur die x aktuellsten Zeilen.
Letztendlich soll mit PLogs.SaveToFile die Liste der aktuellsten Logs gespeichert werden (die Liste wird also bei jedem Loggen komplett gespeichert) und dabei kommt es, wenn viele Log-Einträge schnell hintereinander geschrieben werden, ab und an zum Crash (Auf die Datei kann nicht zugegriffen werden).

Was passiert da und wie kann ich dem entgegenwirken?

Vielen Dank

René
  Mit Zitat antworten Zitat