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 可能因为要等待那些命令的结果以确定是否可回收锁而发生阻塞。

当前实例句柄必须绑定到一个实例和一个锁所有者。 该实例不得已完成。 与锁的所有者关联的锁定标记用于标识锁的所有者。

一旦一个锁绑定到一个句柄,它就会在该句柄的整个生存期中一直与之绑定。 锁定标记和实例版本都不可更改。

适用于