SpinLock.TryEnter 方法

定义

尝试采用可靠的方式获取锁,这样,即使在方法调用中发生异常的情况下,都能采用可靠的方式检查 lockTaken 以确定是否已获取锁。

重载

TryEnter(Boolean)

尝试采用可靠的方式获取锁,这样,即使在方法调用中发生异常的情况下,都能采用可靠的方式检查 lockTaken 以确定是否已获取锁。

TryEnter(Int32, Boolean)

尝试采用可靠的方式获取锁,这样,即使在方法调用中发生异常的情况下,都能采用可靠的方式检查 lockTaken 以确定是否已获取锁。

TryEnter(TimeSpan, Boolean)

尝试采用可靠的方式获取锁,这样,即使在方法调用中发生异常的情况下,都能采用可靠的方式检查 lockTaken 以确定是否已获取锁。

TryEnter(Boolean)

Source:
SpinLock.cs
Source:
SpinLock.cs
Source:
SpinLock.cs

尝试采用可靠的方式获取锁,这样,即使在方法调用中发生异常的情况下,都能采用可靠的方式检查 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。

例外

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

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

注解

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

另请参阅

适用于

TryEnter(Int32, Boolean)

Source:
SpinLock.cs
Source:
SpinLock.cs
Source:
SpinLock.cs

尝试采用可靠的方式获取锁,这样,即使在方法调用中发生异常的情况下,都能采用可靠的方式检查 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 的负数,而 -1 表示无限期超时。

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

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

注解

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

另请参阅

适用于

TryEnter(TimeSpan, Boolean)

Source:
SpinLock.cs
Source:
SpinLock.cs
Source:
SpinLock.cs

尝试采用可靠的方式获取锁,这样,即使在方法调用中发生异常的情况下,都能采用可靠的方式检查 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,或表示 -1 毫秒(无限期等待)的 TimeSpan

lockTaken
Boolean

如果已获取锁,则为 true,否则为 false。 调用此方法前,必须将 lockTaken 始化为 false。

例外

timeout 是除 -1 毫秒以外的负数,表示无限超时 -或 - 超时大于 Int32.MaxValue 毫秒。

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

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

注解

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

另请参阅

适用于