共用方式為


InstancePersistenceContext.BeginBindReclaimedLock 方法

定義

開始非同步作業,將執行個體上的現有鎖定繫結至目前執行個體控制代碼。 現有的鎖定版本會當做參數傳遞。

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

與非同步作業相關聯的狀態資訊。

傳回

IAsyncResult

非同步作業的狀態。

備註

嘗試取得鎖定時,持續性提供者可能會決定目前的執行個體已經鎖定在目前的存放區中。 如果鎖定權杖符合目前控制碼的鎖定權杖,則持續性提供者可以藉由檢查其版本並將它傳遞給 BeginBindReclaimedLock,嘗試回收鎖定。 在成功回收鎖定之前,持續性提供者不得對執行個體進行變更。 如果沒有其他控制代碼繫結至鎖定,則 BeginBindReclaimedLock 作業就會成功,而且目前的控制代碼會變成繫結至鎖定。 否則,BeginBindReclaimedLock 或 EndBindReclaimedLock 會擲回 InstanceHandleConflictException。 如果其他控制代碼的命令正在進行,在等候這些命令的結果來決定是否能夠回收鎖定時,此作業可能無法完成。

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

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

適用於