System.Threading.Monitor.TryEnter C# (CSharp) Метод

TryEnter() публичный статический Метод

public static TryEnter ( object obj, int millisecondsTimeout ) : bool
obj object
millisecondsTimeout int
Результат bool
		public static bool TryEnter (object obj, int millisecondsTimeout)
		{
			if (obj == null)
				throw new ArgumentNullException ("obj");

			if (millisecondsTimeout == Timeout.Infinite) {
				Enter (obj);
				return true;
			}

			if (millisecondsTimeout < 0)
				throw new ArgumentException ("negative value for millisecondsTimeout", "millisecondsTimeout");
			
			return Monitor_try_enter (obj, millisecondsTimeout);
		}

Same methods

Monitor::TryEnter ( object obj ) : bool
Monitor::TryEnter ( object obj, System.TimeSpan timeout ) : bool
Monitor::TryEnter ( object obj, System.TimeSpan timeout, bool &lockTaken ) : void
Monitor::TryEnter ( object obj, bool &lockTaken ) : void
Monitor::TryEnter ( object obj, int millisecondsTimeout, bool &lockTaken ) : void

Usage Example

Пример #1
0
        /// <summary>Gets an enumerable of the tasks currently scheduled on this scheduler.</summary>
        /// <returns>An enumerable of the tasks currently scheduled.</returns>
        protected sealed override IEnumerable <Task> GetScheduledTasks()
        {
            bool lockTaken = false;

            try
            {
                Monitor.TryEnter(_tasks, ref lockTaken);
                if (lockTaken)
                {
                    return(_tasks);
                }
                else
                {
                    throw new NotSupportedException();
                }
            }
            finally
            {
                if (lockTaken)
                {
                    Monitor.Exit(_tasks);
                }
            }
        }
All Usage Examples Of System.Threading.Monitor::TryEnter