Exemplo n.º 1
0
        /// <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);
        }
Exemplo n.º 2
0
        /// <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);
        }