SpinLock.TryEnter 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
尝试以可靠的方式获取锁,以便即使方法调用中发生异常, lockTaken 也可以可靠地检查以确定是否已获取锁。
重载
| 名称 | 说明 |
|---|---|
| TryEnter(Boolean) |
尝试以可靠的方式获取锁,以便即使方法调用中发生异常, |
| TryEnter(Int32, Boolean) |
尝试以可靠的方式获取锁,以便即使方法调用中发生异常, |
| TryEnter(TimeSpan, Boolean) |
尝试以可靠的方式获取锁,以便即使方法调用中发生异常, |
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)
参数
- 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)
参数
- lockTaken
- Boolean
如果获取锁,则为 True;否则为 false。
lockTaken 在调用此方法之前,必须初始化为 false。
例外
timeout 是非 -1 毫秒的负数,表示无限超时 -or- 超时大于 Int32.MaxValue 毫秒。
在 lockTaken 调用 TryEnter 之前,参数必须初始化为 false。
已启用线程所有权跟踪,并且当前线程已获取此锁。
注解
与上一样 Enter,TryEnter 不会无限期阻止等待锁可用。 它将阻止,直到锁可用,或直到 timeout 锁已过期。