public void Unlock() { if (!locked) throw new InvalidOperationException(); UnlockInternal(); locked = false; }