共用方式為


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 可能會進入封鎖狀態而等候這些命令的結果,然後再決定是否能夠回收鎖定。

目前的執行個體控制代碼必須繫結至執行個體和鎖定擁有者。 此執行個體不得為完成。 與鎖定擁有者相關聯的鎖定權杖會用來識別鎖定的擁有者。

一旦鎖定繫結至控制代碼之後,它就會在控制代碼的存留期內維持繫結狀態。 此時,無法變更鎖定權杖或執行個體版本。

適用於