InstancePersistenceContext.BindReclaimedLock(Int64, TimeSpan) 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
將實例上的現有鎖綁定到目前的實例 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 可能會阻擋等待指令結果,再決定是否能回收該鎖。
目前的實例句柄必須綁定在一個實例和一個鎖擁有者上。 該實例必須不完成。 與鎖具所有者相關的鎖令牌用來識別鎖的擁有者。
一旦鎖綁定到把柄,它就會在把柄的整個壽命內保持綁定狀態。 鎖令牌和實例版本都無法更改。