Delphi-Quellcode:
Procedure TMyList.Lock;
Begin
IF MustLock then
FCS.Enter;
End;
procedure TMyList.Unlock;
begin
IF MustLock then
FCS.Release;
end;
Procedure TMyList.Locklist;
Begin
FCS.Enter;
MustLock:=False; //Liste muss später NICHT automatisch gesperrt werden
End;
Procedure TMyList.Unlocklist; //EDIT: Reihenfolge der Codezeilen wurde getauscht
Begin
MustLock:=True; //Liste muss später automatisch gesperrt werden
FCS.Release;
End;
Wenn Thread1 Locklist aufgerufen hat und die Liste bearbeitet, kann Thread2 im Lock am FCS.Enter vorbei und die Liste ebenfalls zur gleichen Zeit bearbeiten.