ReaderWriterLockSlim.TryEnterReadLock 方法

定义

尝试进入读取模式锁定状态,可以选择超时时间。

重载

TryEnterReadLock(Int32)

尝试进入读取模式锁定状态,可以选择整数超时时间。

TryEnterReadLock(TimeSpan)

尝试进入读取模式锁定状态,可以选择超时时间。

TryEnterReadLock(Int32)

Source:
ReaderWriterLockSlim.cs
Source:
ReaderWriterLockSlim.cs
Source:
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),这是唯一允许使用的负值。

注解

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

多个线程可以同时进入读取模式。

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

注意

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

一个线程可以处于可升级模式,而其他线程则处于读取模式。 如果其他线程正在等待进入可升级模式,并且没有线程等待进入写入模式,则调用 方法的 TryEnterReadLock 线程会立即进入读取模式,并且不会阻塞。

适用于

TryEnterReadLock(TimeSpan)

Source:
ReaderWriterLockSlim.cs
Source:
ReaderWriterLockSlim.cs
Source:
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 毫秒,这是唯一允许使用的负值。

- 或 -

的值 timeout 大于 Int32.MaxValue 毫秒。

注解

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

多个线程可以同时在读取模式下进入锁。

如果一个或多个线程排队进入写入模式,调用 方法的 TryEnterReadLock 线程将阻塞,直到这些线程超时或进入写入模式,然后退出写入模式,或直到调用线程自己的超时间隔过期。

注意

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

一个线程可以处于可升级模式,而其他线程则处于读取模式。 如果其他线程正在等待进入可升级模式,并且没有线程等待进入写入模式,则调用 方法的 TryEnterReadLock 线程会立即进入读取模式,并且不会阻塞。

适用于