Ich hab in meinem Projekt zwei Streams:
Delphi-Quellcode:
var
DateiStream: TFileStream;
MemoryStream: TMemoryStream;
Den MemoryStream benutz ich als Buffer und schreib da ca. 10 mal pro Sekunde einen String rein. Um das ganze in eine Datei zu schreiben benutz ich einen Timer eingestellt auf ca. 15-30 Sekunden.
Das OnTimer-Ereignis sieht folgendermaßen aus:
Delphi-Quellcode:
procedure TForm1.SpeicherTimerTimer(Sender: TObject);
begin
MemoryStream.SaveToStream(DateiStream);
MemoryStream.Clear;
end;
Ich schreibe den MemoryStream erst in eine Datei und lösche ihn dann um wieder neue Daten aufnehmen zu können.
Jetzt meine Frage:
Kann es passieren, das ich Daten 'verpasse' wenn sie zufällig genau zwischen dem SaveToStream und dem Clear eintreffen und in MemoryStream gespeichert werden?
Das da Daten ins Nirvana verschwinden hab ich anhand eines Vergleiches der gesendeten und empfangenen Daten festgestellt. Dummerweise hab ich keine Ahnung wo das passiert...
Die Wichtigkeit eines Postings im Forum ist reziprok zur Anzahl der enthaltenenen, kumulierten Ausrufungszeichen!!!