InstancePersistenceContext.BindReclaimedLock(Int64, TimeSpan) 方法

定义

将实例上的现有锁绑定到当前实例句柄。 现有锁的版本作为参数传递。

public:
 void BindReclaimedLock(long instanceVersion, TimeSpan timeout);
public void BindReclaimedLock(long instanceVersion, TimeSpan timeout);
member this.BindReclaimedLock : int64 * TimeSpan -> unit
Public Sub BindReclaimedLock (instanceVersion As Long, timeout As TimeSpan)

参数

instanceVersion
Int64

实例上保留的锁的版本,如果持久性提供程序未实现锁版本,则为零。

timeout
TimeSpan

操作的超时值。

注解

尝试获取锁时,持久性提供程序可能会决定当前实例已在当前存储中锁定。 如果锁令牌与当前句柄的锁令牌匹配,则持久性提供程序可以通过检查其版本并将其传递给 BindReclaimedLock 来尝试回收锁。 在成功回收锁之前,持久性提供程序不得对实例进行更改。 如果没有其他句柄绑定到锁,则 BindReclaimedLock 会成功,并且当前句柄将绑定到该锁。 否则,BindReclaimedLock 将引发 InstanceHandleConflictException。 如果命令在其他句柄上正在进行,BindReclaimedLock 可能会在确定是否可以回收锁之前阻止等待这些命令的结果。

当前实例句柄必须绑定到实例和锁所有者。 实例不能完成。 与锁所有者关联的锁令牌用于标识锁的所有者。

锁定绑定到句柄后,它将在句柄的生存期内保持绑定状态。 锁令牌和实例版本都不能更改。

适用于