ReaderWriterLockSlim.TryEnterUpgradeableReadLock 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
尝试进入可升级模式锁定状态,可以选择超时时间。
重载
TryEnterUpgradeableReadLock(Int32) |
尝试进入可升级模式锁定状态,可以选择超时时间。 |
TryEnterUpgradeableReadLock(TimeSpan) |
尝试进入可升级模式锁定状态,可以选择超时时间。 |
TryEnterUpgradeableReadLock(Int32)
- Source:
- ReaderWriterLockSlim.cs
- Source:
- ReaderWriterLockSlim.cs
- Source:
- 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
参数
返回
如果调用线程已进入可升级模式,则为 true
;否则为 false
。
例外
RecursionPolicy 属性为 NoRecursion,而且当前线程已进入锁定状态。
- 或 -
初始状态下,当前线程进入读取模式锁定状态,因此尝试进入可升级模式将有可能导致死锁。
- 或 -
递归数将超出该计数器的容量。 此限制数值很大,因此任何情况下应用程序都不应遇到此情况。
millisecondsTimeout
的值为负,但不等于 Infinite (-1),这是唯一允许使用的负值。
注解
如果 millisecondsTimeout
为 0 (零) ,此方法将检查锁定状态,并在所需状态不可用时立即返回 false
。
当线程通常在读取模式下访问受 ReaderWriterLockSlim 保护的资源时,请使用可升级模式,但如果满足某些条件,则可能需要进入写入模式。 处于可升级模式的线程可以升级到写入模式或降级到读取模式。
在任何给定时间,只有一个线程可以在可升级模式下进入锁。 如果线程处于可升级模式,并且没有线程等待进入写入模式,则任何其他线程都可以进入读取模式,即使有线程正在等待进入可升级模式。
如果一个或多个线程正在等待进入写入模式,则调用 方法的 TryEnterUpgradeableReadLock 线程会阻塞,直到这些线程超时或进入写入模式,然后退出写入模式,或直到调用线程自己的超时间隔过期。
注意
如果锁允许递归,则已进入可升级模式锁定的线程可以递归方式进入可升级模式,即使其他线程正在等待进入写入模式。
适用于
TryEnterUpgradeableReadLock(TimeSpan)
- Source:
- ReaderWriterLockSlim.cs
- Source:
- ReaderWriterLockSlim.cs
- Source:
- 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
为 0 (零) ,此方法将检查锁定状态,并在所需状态不可用时立即返回 false
。
当线程通常在读取模式下访问受 ReaderWriterLockSlim 保护的资源时,请使用可升级模式,但如果满足某些条件,则可能需要进入写入模式。 处于可升级模式的线程可以升级到写入模式或降级到读取模式。
在任何给定时间,只有一个线程可以在可升级模式下进入锁。 如果线程处于可升级模式,并且没有线程等待进入写入模式,则任何其他线程都可以进入读取模式,即使有线程正在等待进入可升级模式。
如果一个或多个线程正在等待进入写入模式,则调用 方法的 TryEnterUpgradeableReadLock 线程会阻塞,直到这些线程超时或进入写入模式,然后退出写入模式,或直到调用线程自己的超时间隔过期。
注意
如果锁允许递归,则已进入可升级模式锁定的线程可以递归方式进入可升级模式,即使其他线程正在等待进入写入模式。