InstancePersistenceContext.BindReclaimedLock(Int64, TimeSpan) 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
将某个实例上的现有锁绑定到当前实例句柄。 现有锁的版本将作为参数传递。
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 可能因为要等待那些命令的结果以确定是否可回收锁而发生阻塞。
当前实例句柄必须绑定到一个实例和一个锁所有者。 该实例不得已完成。 与锁的所有者关联的锁定标记用于标识锁的所有者。
一旦一个锁绑定到一个句柄,它就会在该句柄的整个生存期中一直与之绑定。 锁定标记和实例版本都不可更改。