ReaderWriterLockSlim.TryEnterUpgradeableReadLock 方法

定义

尝试以可升级模式进入锁,并选择性超时。

重载

名称 说明
TryEnterUpgradeableReadLock(Int32)

尝试以可升级模式进入锁,并选择性超时。

TryEnterUpgradeableReadLock(TimeSpan)

尝试以可升级模式进入锁,并选择性超时。

TryEnterUpgradeableReadLock(Int32)

Source:
ReaderWriterLockSlim.cs
Source:
ReaderWriterLockSlim.cs
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

参数

millisecondsTimeout
Int32

等待的毫秒数,或 -1 (Infinite) 无限期等待。

返回

如果调用线程进入可升级模式,则为 ;否则为 >。

例外

RecursionPolicy 属性为 NoRecursion 当前线程已进入锁。

-或-

当前线程最初在读取模式下进入锁,因此尝试进入可升级模式将产生死锁的可能性。

-或-

递归数将超过计数器的容量。 限制如此之大,以至于应用程序不应该遇到它。

值为 millisecondsTimeout 负值,但它不等于 Infinite (-1),这是允许的唯一负值。

注解

如果 millisecondsTimeout 为 0(零),此方法将检查锁定状态,并在所需状态不可用时立即返回 false

当线程通常访问受 ReaderWriterLockSlim 读取模式保护的资源时,请使用可升级模式,但如果满足某些条件,可能需要进入写入模式。 可升级模式下的线程可以升级到写入模式或降级到读取模式。

在任何给定时间,只有一个线程可以进入可升级模式的锁。 如果线程处于可升级模式,并且没有等待进入写入模式的线程,则任何其他线程都可以进入读取模式,即使有等待进入可升级模式的线程也是如此。

如果一个或多个线程正在等待进入写入模式,则调用 TryEnterUpgradeableReadLock 方法的线程将阻止,直到这些线程超时或进入写入模式,然后退出写入模式,或直到调用线程自己的超时间隔过期为止。

注释

如果锁允许递归,则以可升级模式进入锁的线程可以递归进入可升级模式,即使其他线程正在等待进入写入模式。

适用于

TryEnterUpgradeableReadLock(TimeSpan)

Source:
ReaderWriterLockSlim.cs
Source:
ReaderWriterLockSlim.cs
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 毫秒无限期等待。

返回

如果调用线程进入可升级模式,则为 ;否则为 >。

例外

RecursionPolicy 属性为 NoRecursion 当前线程已进入锁。

-或-

当前线程最初在读取模式下进入锁,因此尝试进入可升级模式将产生死锁的可能性。

-或-

递归数将超过计数器的容量。 限制如此之大,以至于应用程序不应该遇到它。

值为 timeout 负值,但它不等于 -1 毫秒,这是允许的唯一负值。

-或-

该值 timeout 大于 Int32.MaxValue 毫秒。

注解

如果 timeout 为 0(零),此方法将检查锁定状态,并在所需状态不可用时立即返回 false

当线程通常访问受 ReaderWriterLockSlim 读取模式保护的资源时,请使用可升级模式,但如果满足某些条件,可能需要进入写入模式。 可升级模式下的线程可以升级到写入模式或降级到读取模式。

在任何给定时间,只有一个线程可以进入可升级模式的锁。 如果线程处于可升级模式,并且没有等待进入写入模式的线程,则任何其他线程都可以进入读取模式,即使有等待进入可升级模式的线程也是如此。

如果一个或多个线程正在等待进入写入模式,则调用 TryEnterUpgradeableReadLock 方法的线程将阻止,直到这些线程超时或进入写入模式,然后退出写入模式,或直到调用线程自己的超时间隔过期为止。

注释

如果锁允许递归,则以可升级模式进入锁的线程可以递归进入可升级模式,即使其他线程正在等待进入写入模式。

适用于