SpinLock.TryEnter Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Пытается получить блокировку надежным образом, например, даже если в вызове метода возникает исключение, lockTaken можно проверить надежно, чтобы определить, была ли получена блокировка.
Перегрузки
| Имя | Описание |
|---|---|
| TryEnter(Boolean) |
Пытается получить блокировку надежным образом, например, даже если в вызове метода возникает исключение, |
| TryEnter(Int32, Boolean) |
Пытается получить блокировку надежным образом, например, даже если в вызове метода возникает исключение, |
| TryEnter(TimeSpan, Boolean) |
Пытается получить блокировку надежным образом, например, даже если в вызове метода возникает исключение, |
TryEnter(Boolean)
- Исходный код:
- SpinLock.cs
- Исходный код:
- SpinLock.cs
- Исходный код:
- SpinLock.cs
- Исходный код:
- SpinLock.cs
- Исходный код:
- SpinLock.cs
Пытается получить блокировку надежным образом, например, даже если в вызове метода возникает исключение, lockTaken можно проверить надежно, чтобы определить, была ли получена блокировка.
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.
lockTaken перед вызовом этого метода необходимо инициализировать значение false.
Исключения
Аргумент lockTaken должен быть инициализирован до вызова TryEnter значение false.
Отслеживание владения потоками включено, и текущий поток уже приобрел эту блокировку.
Комментарии
В отличие от Enterтого, TryEnter не блокирует ожидание доступности блокировки. Если блокировка недоступна при вызове TryEnter, она возвращается немедленно без дальнейшего спиннинга.
См. также раздел
- SpinLock
- Практическое руководство. Использование SpinLock для синхронизации Low-Level
- Практическое руководство. Включение режима Thread-Tracking в SpinLock
Применяется к
TryEnter(Int32, Boolean)
- Исходный код:
- SpinLock.cs
- Исходный код:
- SpinLock.cs
- Исходный код:
- SpinLock.cs
- Исходный код:
- SpinLock.cs
- Исходный код:
- SpinLock.cs
Пытается получить блокировку надежным образом, например, даже если в вызове метода возникает исключение, lockTaken можно проверить надежно, чтобы определить, была ли получена блокировка.
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) для ожидания на неопределенный срок.
- lockTaken
- Boolean
Значение true, если блокировка приобретена; в противном случае значение false.
lockTaken перед вызовом этого метода необходимо инициализировать значение false.
Исключения
millisecondsTimeout — отрицательное число, отличное от -1, которое представляет бесконечное время ожидания.
Аргумент lockTaken должен быть инициализирован до вызова TryEnter значение false.
Отслеживание владения потоками включено, и текущий поток уже приобрел эту блокировку.
Комментарии
В отличие от Enterтого, TryEnter не будет блокировать неограниченное время ожидания доступности блокировки. Он будет блокироваться до тех пор, пока блокировка не будет доступна или до истечения millisecondsTimeout срока действия.
См. также раздел
- SpinLock
- Практическое руководство. Использование SpinLock для синхронизации Low-Level
- Практическое руководство. Включение режима Thread-Tracking в SpinLock
Применяется к
TryEnter(TimeSpan, Boolean)
- Исходный код:
- SpinLock.cs
- Исходный код:
- SpinLock.cs
- Исходный код:
- SpinLock.cs
- Исходный код:
- SpinLock.cs
- Исходный код:
- SpinLock.cs
Пытается получить блокировку надежным образом, например, даже если в вызове метода возникает исключение, lockTaken можно проверить надежно, чтобы определить, была ли получена блокировка.
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 миллисекундах, которые будут ждать неограниченное время.
- lockTaken
- Boolean
Значение true, если блокировка приобретена; в противном случае значение false.
lockTaken перед вызовом этого метода необходимо инициализировать значение false.
Исключения
timeout — отрицательное число, отличное от -1 миллисекундах, которое представляет бесконечное время ожидания или время ожидания больше, чем в миллисекундах Int32.MaxValue .
Аргумент lockTaken должен быть инициализирован до вызова TryEnter значение false.
Отслеживание владения потоками включено, и текущий поток уже приобрел эту блокировку.
Комментарии
В отличие от Enterтого, TryEnter не будет блокировать неограниченное время ожидания доступности блокировки. Он будет блокироваться до тех пор, пока блокировка не будет доступна или до истечения timeout срока действия.
См. также раздел
- SpinLock
- Практическое руководство. Использование SpinLock для синхронизации Low-Level
- Практическое руководство. Включение режима Thread-Tracking в SpinLock