Поделиться через


ReaderWriterLockSlim.TryEnterReadLock Метод

Определение

Пытается войти в блокировку в режиме чтения с необязательным указанием времени ожидания.

Перегрузки

TryEnterReadLock(Int32)

Пытается войти в блокировку в режиме чтения с необязательным указанием времени ожидания целым числом.

TryEnterReadLock(TimeSpan)

Пытается войти в блокировку в режиме чтения с необязательным указанием времени ожидания.

TryEnterReadLock(Int32)

Исходный код:
ReaderWriterLockSlim.cs
Исходный код:
ReaderWriterLockSlim.cs
Исходный код:
ReaderWriterLockSlim.cs

Пытается войти в блокировку в режиме чтения с необязательным указанием времени ожидания целым числом.

public:
 bool TryEnterReadLock(int millisecondsTimeout);
public bool TryEnterReadLock (int millisecondsTimeout);
member this.TryEnterReadLock : int -> bool
Public Function TryEnterReadLock (millisecondsTimeout As Integer) As Boolean

Параметры

millisecondsTimeout
Int32

Время ожидания в миллисекундах или -1 (Infinite) в случае неограниченного времени ожидания.

Возвращаемое значение

Значение true, если вызывающий поток вошел в режим чтения; в противном случае false.

Исключения

Свойство RecursionPolicy имеет значение NoRecursion, а текущий поток уже вошел в блокировку.

-или-

Глубина рекурсии превышает емкость счетчика. Ограничение допускает настолько большое число рекурсивных вхождений, что оно не должно достигаться приложениями на практике.

Значение параметра millisecondsTimeout меньше нуля, но не равно Infinite (-1), которое является единственным допустимым отрицательным значением.

Объект ReaderWriterLockSlim был удален.

Комментарии

Если millisecondsTimeout имеет значение 0 (ноль), этот метод проверяет состояние блокировки и немедленно возвращает значение false , если требуемое состояние недоступно.

Несколько потоков могут одновременно переходить в режим чтения.

Если один или несколько потоков ожидают выхода в режим записи, поток, вызывающий TryEnterReadLock метод, блокируется до тех пор, пока эти потоки не истечет время ожидания или не перейдет в режим записи, а затем не выйдет из него или пока не истечет собственный интервал времени ожидания вызывающего потока.

Примечание

Если блокировка допускает рекурсию, поток, который вступил в блокировку в режиме чтения, может рекурсивно перейти в режим чтения, даже если другие потоки ожидают выхода в режим записи.

Один поток может находиться в обновляемом режиме, а другие — в режиме чтения. Если дополнительные потоки ожидают перехода в обновляемый режим и нет потоков, ожидающих перехода в режим записи, потоки, вызывающие TryEnterReadLock метод, немедленно переходят в режим чтения и не блокируются.

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

TryEnterReadLock(TimeSpan)

Исходный код:
ReaderWriterLockSlim.cs
Исходный код:
ReaderWriterLockSlim.cs
Исходный код:
ReaderWriterLockSlim.cs

Пытается войти в блокировку в режиме чтения с необязательным указанием времени ожидания.

public:
 bool TryEnterReadLock(TimeSpan timeout);
public bool TryEnterReadLock (TimeSpan timeout);
member this.TryEnterReadLock : TimeSpan -> bool
Public Function TryEnterReadLock (timeout As TimeSpan) As Boolean

Параметры

timeout
TimeSpan

Период ожидания или значение -1 миллисекунда для ожидания в течение неограниченного времени.

Возвращаемое значение

Значение true, если вызывающий поток вошел в режим чтения; в противном случае false.

Исключения

Свойство RecursionPolicy имеет значение NoRecursion, а текущий поток уже вошел в блокировку.

-или-

Глубина рекурсии превышает емкость счетчика. Ограничение допускает настолько большое число рекурсивных вхождений, что оно не должно достигаться приложениями на практике.

Значение параметра timeout отрицательное, но оно не равно -1 миллисекунде, которое является единственным допустимым отрицательным значением.

-или-

Значение параметра больше, чем Int32.MaxValue в миллисекундахtimeout.

Объект ReaderWriterLockSlim был удален.

Комментарии

Если timeout имеет значение 0 (ноль), этот метод проверяет состояние блокировки и немедленно возвращает значение false , если требуемое состояние недоступно.

Несколько потоков могут одновременно войти в блокировку в режиме чтения.

Если один или несколько потоков помещаются в очередь для входа в режим записи, поток, вызывающий TryEnterReadLock метод, блокируется до тех пор, пока эти потоки не истечет время ожидания или не перейдет в режим записи, а затем не выйдет из него или пока не истечет собственный интервал времени ожидания вызывающего потока.

Примечание

Если блокировка допускает рекурсию, поток, который вступил в блокировку в режиме чтения, может рекурсивно перейти в режим чтения, даже если другие потоки ожидают выхода в режим записи.

Один поток может находиться в обновляемом режиме, а другие — в режиме чтения. Если дополнительные потоки ожидают перехода в обновляемый режим и нет потоков, ожидающих перехода в режим записи, потоки, вызывающие TryEnterReadLock метод, немедленно переходят в режим чтения и не блокируются.

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