ReaderWriterLockSlim.TryEnterUpgradeableReadLock Метод

Определение

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

Перегрузки

Имя Описание
TryEnterUpgradeableReadLock(Int32)

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

TryEnterUpgradeableReadLock(TimeSpan)

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

TryEnterUpgradeableReadLock(Int32)

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

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

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

Параметры

millisecondsTimeout
Int32

Количество миллисекунда для ожидания или -1 (Infinite) для ожидания на неопределенный срок.

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

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

Исключения

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

–или–

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

–или–

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

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

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

Комментарии

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

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

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

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

Note

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

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

TryEnterUpgradeableReadLock(TimeSpan)

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

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

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

Параметры

timeout
TimeSpan

Интервал ожидания или -1 миллисекундах, чтобы ждать неограниченное время.

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

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

Исключения

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

–или–

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

–или–

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

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

–или–

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

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

Комментарии

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

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

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

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

Note

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

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