Thema: Delphi Zugriff synchronisieren

Einzelnen Beitrag anzeigen

hanspeter

Registriert seit: 26. Jul 2003
Ort: Leipzig
1.350 Beiträge
 
Delphi XE2 Professional
 
#1

Zugriff synchronisieren

  Alt 14. Sep 2006, 07:48
Hallo,
ich plage mich mit folgenden Problem.

In einen Ringpuffer werden Daten zyklisch geschrieben und gelesen.
Das funktioniert auch wie gewünscht.
Den Lese- und den Schreibvorgang habe ich in einer kritischen Sektion eingeschlossen.

Also

Delphi-Quellcode:
FLock : TCriticalSection;


 FLock.Acquire;
 FLock.Enter;
schreibe Daten in den Buffer
FLock.Release;
Um das Teil zu stressen schreibe ich über einen Timer zyklisch Daten und Lese diese wieder.
Schreibe ich jetzt zusätzlich Daten über einen Schalter in den Buffer, kommt eine Speicherschutzverletzung.
Das heist, dass der als kritische Sektion gekapselte Vorgang offensichtlich nicht abgeschlossen ist,
und der über Schalter ausgelöste asynchrone Schreibzugriff in den gerade laufenden fuscht.

Hat wer eine Idee, wie ich den Schreibvorgang in den Buffer absichern kann,
ohne das eine Unterbrechung möglich ist?

Mit Gruß Peter
  Mit Zitat antworten Zitat