Lock.TryEnter 方法

定义

重载

TryEnter()

尝试在不等待的情况下进入锁。

TryEnter(Int32)

尝试进入锁,根据需要等待指定的毫秒数,直到可以输入锁。

TryEnter(TimeSpan)

尝试进入锁,如有必要,请等待,直到可以输入锁或指定的超时过期。

TryEnter()

Source:
Lock.cs

尝试在不等待的情况下进入锁。

public:
 bool TryEnter();
public bool TryEnter ();
member this.TryEnter : unit -> bool
Public Function TryEnter () As Boolean

返回

true 如果当前线程已输入锁,则为 ;否则为 false

例外

锁已达到当前线程重复条目的限制。 该限制是实现定义的,旨在足够高,在正常情况下不会达到该限制。

注解

当 方法返回 true时,当前线程是唯一保留锁的线程。 如果无法立即输入锁,方法将 false 返回,而无需等待锁。 如果锁已由当前线程持有,则会再次输入该锁。 若要完全退出锁并允许其他线程进入锁,当前线程应退出锁的次数与进入锁的次数一样多。

有关详细信息,请参阅 Lock 的备注。

适用于

TryEnter(Int32)

Source:
Lock.cs

尝试进入锁,根据需要等待指定的毫秒数,直到可以输入锁。

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

参数

millisecondsTimeout
Int32

输入锁之前要等待的毫秒数。 指定 Timeout.Infinite (-1) 无限期等待或 0 不等待。

返回

true 如果当前线程已输入锁,则为 ;否则为 false

例外

millisecondsTimeout 小于 -1

锁已达到当前线程重复条目的限制。 该限制是实现定义的,旨在足够高,在正常情况下不会达到该限制。

注解

当 方法返回 true时,当前线程是唯一保留锁的线程。 如果无法立即输入锁,方法将等到可以输入锁或参数指定的 millisecondsTimeout 超时过期为止。 如果超时在进入锁之前过期,该方法将 false返回 。 如果锁已由当前线程持有,则会再次输入该锁。 若要完全退出锁并允许其他线程进入锁,当前线程应退出锁的次数与进入锁的次数一样多。

有关详细信息,请参阅 Lock 的备注。

适用于

TryEnter(TimeSpan)

Source:
Lock.cs

尝试进入锁,如有必要,请等待,直到可以输入锁或指定的超时过期。

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

参数

timeout
TimeSpan

一个 TimeSpan ,表示在可以输入锁之前等待的毫秒数。 指定一个值,该值表示 Timeout.Infinite (-1 无限期等待) 毫秒,或表示 0 不等待的毫秒的值。

返回

true 如果当前线程已输入锁,则为 ;否则为 false

例外

timeout转换为整数毫秒值后,表示小于 -1 毫秒或大于 Int32.MaxValue 毫秒的值。

锁已达到当前线程重复条目的限制。 该限制是实现定义的,旨在足够高,在正常情况下不会达到该限制。

注解

当 方法返回 true时,当前线程是唯一保留锁的线程。 如果无法立即输入锁,方法将一直等到可以输入锁或指定的 timeout 过期为止。 如果超时在进入锁之前过期,该方法将 false返回 。 如果锁已由当前线程持有,则会再次输入该锁。 若要完全退出锁并允许其他线程进入锁,当前线程应退出锁的次数与进入锁的次数一样多。

有关详细信息,请参阅 Lock 的备注。

适用于