InstancePersistenceContext.BindReclaimedLock(Int64, TimeSpan) 方法

定義

將實例上的現有鎖綁定到目前的實例 handle。 現有鎖的版本會作為參數傳遞。

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

操作的逾時值。

備註

在嘗試取得鎖時,持久化提供者可能會判斷目前實例已鎖定在當前儲存庫中。 如果鎖的標記與目前 handle 的鎖標記相符,持久化提供者可以嘗試透過檢查其版本並交給 BindReclaimedLock 來重新奪回該鎖。 持久性提供者在鎖定成功回收前不得對實例進行變更。 如果沒有其他 handle 綁定到該鎖,則 BindReclaimedLock 成功,目前的 handle 也綁定在該鎖上。 否則,BindReclaimedLock 會拋出 InstanceHandleConflictException。 若其他帳號正在執行指令,BindReclaimedLock 可能會阻擋等待指令結果,再決定是否能回收該鎖。

目前的實例句柄必須綁定在一個實例和一個鎖擁有者上。 該實例必須不完成。 與鎖具所有者相關的鎖令牌用來識別鎖的擁有者。

一旦鎖綁定到把柄,它就會在把柄的整個壽命內保持綁定狀態。 鎖令牌和實例版本都無法更改。

適用於