public override int Read(byte[] buffer, int offset, int count) { int Result = 0; ParentStream.SaveRestorePositionAndLock(() => { ParentStream.Position = Position; Result = ParentStream.Read(buffer, offset, count); }); return Result; }