SpinLock.TryEnter 方法

定义

尝试以可靠的方式获取锁,以便即使方法调用中发生异常, lockTaken 也可以可靠地检查以确定是否已获取锁。

重载

名称 说明
TryEnter(Boolean)

尝试以可靠的方式获取锁,以便即使方法调用中发生异常, lockTaken 也可以可靠地检查以确定是否已获取锁。

TryEnter(Int32, Boolean)

尝试以可靠的方式获取锁,以便即使方法调用中发生异常, lockTaken 也可以可靠地检查以确定是否已获取锁。

TryEnter(TimeSpan, Boolean)

尝试以可靠的方式获取锁,以便即使方法调用中发生异常, lockTaken 也可以可靠地检查以确定是否已获取锁。

TryEnter(Boolean)

尝试以可靠的方式获取锁,以便即使方法调用中发生异常, lockTaken 也可以可靠地检查以确定是否已获取锁。

public:
 void TryEnter(bool % lockTaken);
public void TryEnter(ref bool lockTaken);
member this.TryEnter : bool -> unit
Public Sub TryEnter (ByRef lockTaken As Boolean)

参数

lockTaken
Boolean

如果获取锁,则为 True;否则为 false。 lockTaken 在调用此方法之前,必须初始化为 false。

例外

lockTaken 调用 TryEnter 之前,参数必须初始化为 false。

已启用线程所有权跟踪,并且当前线程已获取此锁。

注解

与上一样 Enter,TryEnter 不会阻止等待锁可用。 如果在调用 TryEnter 时锁不可用,它将立即返回,无需进一步旋转。

另请参阅

适用于

TryEnter(Int32, Boolean)

尝试以可靠的方式获取锁,以便即使方法调用中发生异常, lockTaken 也可以可靠地检查以确定是否已获取锁。

public:
 void TryEnter(int millisecondsTimeout, bool % lockTaken);
public void TryEnter(int millisecondsTimeout, ref bool lockTaken);
member this.TryEnter : int * bool -> unit
Public Sub TryEnter (millisecondsTimeout As Integer, ByRef lockTaken As Boolean)

参数

millisecondsTimeout
Int32

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

lockTaken
Boolean

如果获取锁,则为 True;否则为 false。 lockTaken 在调用此方法之前,必须初始化为 false。

例外

millisecondsTimeout 是非 -1 的负数,表示无限超时。

lockTaken 调用 TryEnter 之前,参数必须初始化为 false。

已启用线程所有权跟踪,并且当前线程已获取此锁。

注解

与上一样 Enter,TryEnter 不会无限期阻止等待锁可用。 它将阻止,直到锁可用,或直到 millisecondsTimeout 锁已过期。

另请参阅

适用于

TryEnter(TimeSpan, Boolean)

尝试以可靠的方式获取锁,以便即使方法调用中发生异常, lockTaken 也可以可靠地检查以确定是否已获取锁。

public:
 void TryEnter(TimeSpan timeout, bool % lockTaken);
public void TryEnter(TimeSpan timeout, ref bool lockTaken);
member this.TryEnter : TimeSpan * bool -> unit
Public Sub TryEnter (timeout As TimeSpan, ByRef lockTaken As Boolean)

参数

timeout
TimeSpan

一个 TimeSpan 表示等待的毫秒数,或 TimeSpan 表示要无限期等待的 -1 毫秒。

lockTaken
Boolean

如果获取锁,则为 True;否则为 false。 lockTaken 在调用此方法之前,必须初始化为 false。

例外

timeout 是非 -1 毫秒的负数,表示无限超时 -or- 超时大于 Int32.MaxValue 毫秒。

lockTaken 调用 TryEnter 之前,参数必须初始化为 false。

已启用线程所有权跟踪,并且当前线程已获取此锁。

注解

与上一样 Enter,TryEnter 不会无限期阻止等待锁可用。 它将阻止,直到锁可用,或直到 timeout 锁已过期。

另请参阅

适用于