InstancePersistenceContext.BeginBindReclaimedLock 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
开始异步操作,将实例上的现有锁绑定到当前实例句柄。 现有锁的版本作为参数传递。
public:
IAsyncResult ^ BeginBindReclaimedLock(long instanceVersion, TimeSpan timeout, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginBindReclaimedLock(long instanceVersion, TimeSpan timeout, AsyncCallback callback, object state);
member this.BeginBindReclaimedLock : int64 * TimeSpan * AsyncCallback * obj -> IAsyncResult
Public Function BeginBindReclaimedLock (instanceVersion As Long, timeout As TimeSpan, callback As AsyncCallback, state As Object) As IAsyncResult
参数
- instanceVersion
- Int64
实例上保留的锁版本;如果持久性提供程序未实现锁定版本,则为零。
- timeout
- TimeSpan
异步操作的超时期限。
- callback
- AsyncCallback
完成操作时要调用的方法。
- state
- Object
与异步操作关联的状态信息。
返回
异步操作的状态。
注解
尝试获取锁时,持久性提供程序可能会决定当前实例已在当前存储中锁定。 如果锁令牌与当前句柄的锁令牌匹配,则持久性提供程序可以通过检查其版本并将其传递给 BeginBindReclaimedLock 来尝试回收锁。 在成功回收锁之前,持久性提供程序不得对实例进行更改。 如果未将其他句柄绑定到锁,则 BeginBindReclaimedLock 操作会成功,并且当前句柄将绑定到该锁。 否则,BeginBindReclaimedLock 或 EndBindReclaimedLock 将引发 InstanceHandleConflictException。 如果命令在其他句柄上正在进行,则在等待这些命令的结果决定是否可以回收锁时,该操作可能无法完成。
当前实例句柄必须绑定到实例和锁所有者。 实例不能完成。 与锁所有者关联的锁令牌用于标识锁的所有者。
锁定绑定到句柄后,它将在句柄的生存期内保持绑定状态。 锁令牌和实例版本都不能更改。