SpinLock.Enter(Boolean) Метод

Определение

Получает блокировку надежным образом, например, даже если исключение возникает в вызове метода, lockTaken можно проверить надежно, чтобы определить, была ли получена блокировка.

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

Параметры

lockTaken
Boolean

Значение true, если блокировка приобретена; в противном случае значение false. lockTaken перед вызовом этого метода необходимо инициализировать значение false.

Исключения

Аргумент lockTaken должен быть инициализирован до вызова ВВОД.

Отслеживание владения потоками включено, и текущий поток уже приобрел эту блокировку.

Комментарии

SpinLock — это блокировка без повторного ввода, то есть если поток содержит блокировку, он не может снова ввести блокировку. Если отслеживание владения потоками включено (доступно ли оно включено IsThreadOwnerTrackingEnabled), исключение будет возникать, когда поток пытается повторно ввести блокировку, которая уже содержится. Однако если отслеживание владения потоками отключено, попытка входа в блокировку уже удерживается, приведет к взаимоблокировке.

При вызове Exit без первого вызова Enter внутреннего состояния SpinLock может стать повреждено.

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

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