SpinLock.TryEnter Метод

Определение

Пытается получить блокировку надежным способом, то есть даже если в вызове метода возникает исключение, lockTaken можно надежно изучить и определить, была ли получена блокировка.Attempts to acquire the lock in a reliable manner, such that even if an exception occurs within the method call, lockTaken can be examined reliably to determine whether the lock was acquired.

Перегрузки

TryEnter(Boolean)

Пытается получить блокировку надежным способом, то есть даже если в вызове метода возникает исключение, lockTaken можно надежно изучить и определить, была ли получена блокировка.Attempts to acquire the lock in a reliable manner, such that even if an exception occurs within the method call, lockTaken can be examined reliably to determine whether the lock was acquired.

TryEnter(Int32, Boolean)

Пытается получить блокировку надежным способом, то есть даже если в вызове метода возникает исключение, lockTaken можно надежно изучить и определить, была ли получена блокировка.Attempts to acquire the lock in a reliable manner, such that even if an exception occurs within the method call, lockTaken can be examined reliably to determine whether the lock was acquired.

TryEnter(TimeSpan, Boolean)

Пытается получить блокировку надежным способом, то есть даже если в вызове метода возникает исключение, lockTaken можно надежно изучить и определить, была ли получена блокировка.Attempts to acquire the lock in a reliable manner, such that even if an exception occurs within the method call, lockTaken can be examined reliably to determine whether the lock was acquired.

TryEnter(Boolean)

Пытается получить блокировку надежным способом, то есть даже если в вызове метода возникает исключение, lockTaken можно надежно изучить и определить, была ли получена блокировка.Attempts to acquire the lock in a reliable manner, such that even if an exception occurs within the method call, lockTaken can be examined reliably to determine whether the lock was acquired.

public:
 void TryEnter(bool % lockTaken);
public void TryEnter (ref bool lockTaken);
member this.TryEnter : bool -> unit
Public Sub TryEnter (ByRef lockTaken As Boolean)

Параметры

lockTaken
Boolean

Значение true, если блокировка получена; в противном случае — значение false.True if the lock is acquired; otherwise, false. Перед вызовом этого метода необходимо инициализировать параметр lockTaken.lockTaken must be initialized to false prior to calling this method.

Исключения

Аргумент lockTaken должен быть инициализирован в false до вызова TryEnter.The lockTaken argument must be initialized to false prior to calling TryEnter.

Включено отслеживание владения потоками, и текущий поток уже получил эту блокировку.Thread ownership tracking is enabled, and the current thread has already acquired this lock.

Комментарии

В отличие от Enter , TryEnter не будет блокировать ожидание доступности блокировки.Unlike Enter, TryEnter will not block waiting for the lock to be available. Если блокировка недоступна при вызове TryEnter, она будет возвращаться немедленно без дальнейшей цикличности.If the lock is not available when TryEnter is called, it will return immediately without any further spinning.

См. также раздел

TryEnter(Int32, Boolean)

Пытается получить блокировку надежным способом, то есть даже если в вызове метода возникает исключение, lockTaken можно надежно изучить и определить, была ли получена блокировка.Attempts to acquire the lock in a reliable manner, such that even if an exception occurs within the method call, lockTaken can be examined reliably to determine whether the lock was acquired.

public:
 void TryEnter(int millisecondsTimeout, bool % lockTaken);
public void TryEnter (int millisecondsTimeout, ref bool lockTaken);
member this.TryEnter : int * bool -> unit
Public Sub TryEnter (millisecondsTimeout As Integer, ByRef lockTaken As Boolean)

Параметры

millisecondsTimeout
Int32

Время ожидания в миллисекундах или функция Infinite (-1) в случае неограниченного времени ожидания.The number of milliseconds to wait, or Infinite (-1) to wait indefinitely.

lockTaken
Boolean

Значение true, если блокировка получена; в противном случае — значение false.True if the lock is acquired; otherwise, false. Перед вызовом этого метода необходимо инициализировать параметр lockTaken.lockTaken must be initialized to false prior to calling this method.

Исключения

Параметр millisecondsTimeout является отрицательным числом, отличным от –1, что означает бесконечное время ожидания.millisecondsTimeout is a negative number other than -1, which represents an infinite time-out.

Аргумент lockTaken должен быть инициализирован в false до вызова TryEnter.The lockTaken argument must be initialized to false prior to calling TryEnter.

Включено отслеживание владения потоками, и текущий поток уже получил эту блокировку.Thread ownership tracking is enabled, and the current thread has already acquired this lock.

Комментарии

В отличие от Enter , TryEnter не блокирует бесконечное ожидание доступности блокировки.Unlike Enter, TryEnter will not block indefinitely waiting for the lock to be available. Он блокируется до тех пор, пока блокировка не будет доступна или пока не millisecondsTimeout истечет срок действия.It will block until either the lock is available or until the millisecondsTimeout has expired.

См. также раздел

TryEnter(TimeSpan, Boolean)

Пытается получить блокировку надежным способом, то есть даже если в вызове метода возникает исключение, lockTaken можно надежно изучить и определить, была ли получена блокировка.Attempts to acquire the lock in a reliable manner, such that even if an exception occurs within the method call, lockTaken can be examined reliably to determine whether the lock was acquired.

public:
 void TryEnter(TimeSpan timeout, bool % lockTaken);
public void TryEnter (TimeSpan timeout, ref bool lockTaken);
member this.TryEnter : TimeSpan * bool -> unit
Public Sub TryEnter (timeout As TimeSpan, ByRef lockTaken As Boolean)

Параметры

timeout
TimeSpan

Период TimeSpan, представляющий время ожидания в миллисекундах, или период TimeSpan, представляющий -1 миллисекунду для неограниченного ожидания.A TimeSpan that represents the number of milliseconds to wait, or a TimeSpan that represents -1 milliseconds to wait indefinitely.

lockTaken
Boolean

Значение true, если блокировка получена; в противном случае — значение false.True if the lock is acquired; otherwise, false. Перед вызовом этого метода необходимо инициализировать параметр lockTaken.lockTaken must be initialized to false prior to calling this method.

Исключения

timeout является отрицательным числом, отличным от значения -1 миллисекунды, которое представляет неограниченное время ожидания - или - время ожидания больше MaxValue.timeout is a negative number other than -1 milliseconds, which represents an infinite time-out -or- timeout is greater than MaxValue milliseconds.

Аргумент lockTaken должен быть инициализирован в false до вызова TryEnter.The lockTaken argument must be initialized to false prior to calling TryEnter.

Включено отслеживание владения потоками, и текущий поток уже получил эту блокировку.Thread ownership tracking is enabled, and the current thread has already acquired this lock.

Комментарии

В отличие от Enter , TryEnter не блокирует бесконечное ожидание доступности блокировки.Unlike Enter, TryEnter will not block indefinitely waiting for the lock to be available. Он блокируется до тех пор, пока блокировка не будет доступна или пока не timeout истечет срок действия.It will block until either the lock is available or until the timeout has expired.

См. также раздел

Применяется к