public void Lock()
 {
     if (_locked != null)
     {
         return;
     }
     _threadId.CheckIsCurrent();
     _locked = this.Enumerate().ToArray();
 }