/// <summary> /// /// </summary> /// <param name="priority"></param> /// <returns></returns> public LockRequest TryEnter(int priority) { LockRequest lockRequest; lock (_lockRequests) { if (CurrentLockRequest == null) { lockRequest = new LockRequest(this, priority); lockRequest.Initialize(true); CurrentLockRequest = lockRequest; } else { lockRequest = null; } } return(lockRequest); }
/// <summary> /// /// </summary> /// <param name="priority"></param> /// <returns></returns> public LockRequest Enter(int priority) { var lockRequest = new LockRequest(this, priority); lock (_lockRequests) { bool isCompleted; if (CurrentLockRequest == null) { CurrentLockRequest = lockRequest; isCompleted = true; } else { _lockRequests.Add(lockRequest); isCompleted = false; } lockRequest.Initialize(isCompleted); } return(lockRequest); }