public void Dispose()
 {
     if (!_buffered)
     {
         foreach (var rawLength in GetRawColumnLengths())
         {
             _reader.Skip(rawLength);
         }
         _disposedEvent.Set();
     }
 }