Udostępnij za pośrednictwem


InstancePersistenceContext.BeginBindReclaimedLock Metoda

Definicja

Rozpocznij operację asynchroniczną, aby powiązać istniejącą blokadę na wystąpieniu z bieżącym dojściem wystąpienia. Wersja istniejącej blokady jest przekazywana jako parametr.

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

Parametry

instanceVersion
Int64

Wersja blokady przechowywanej w wystąpieniu lub zero, jeśli dostawca trwałości nie implementuje wersji blokady.

timeout
TimeSpan

Limit czasu operacji asynchronicznej.

callback
AsyncCallback

Metoda, która ma zostać wywołana po zakończeniu operacji.

state
Object

Informacje o stanie skojarzone z operacją asynchroniczną.

Zwraca

Stan operacji asynchronicznej.

Uwagi

Podczas próby uzyskania blokady dostawca trwałości może zdecydować, że bieżące wystąpienie jest już zablokowane w bieżącym magazynie. Jeśli token blokady jest zgodny z tokenem blokady bieżącego uchwytu, dostawca trwałości może podjąć próbę odzyskania blokady, sprawdzając jego wersję i przekazując ją do beginBindReclaimedLock. Dostawca trwałości nie może wprowadzać zmian w wystąpieniu do momentu pomyślnego odzyskania blokady. Jeśli żadne inne uchwyty nie są powiązane z blokadą, operacja BeginBindReclaimedLock zakończy się pomyślnie, a bieżący uchwyt zostanie powiązany z blokadą. W przeciwnym razie element BeginBindReclaimedLock lub EndBindReclaimedLock zgłasza wyjątek InstanceHandleConflictException. Jeśli polecenia są w toku w innych uchwytach, operacja może nie zostać ukończona podczas oczekiwania na wynik tych poleceń, aby zdecydować, czy blokada może zostać odzyskana.

Bieżący uchwyt wystąpienia musi być powiązany z wystąpieniem i właścicielem blokady. Nie można ukończyć wystąpienia. Token blokady skojarzony z właścicielem blokady służy do identyfikowania właściciela blokady.

Gdy blokada jest powiązana z uchwytem, pozostaje powiązana przez cały okres istnienia uchwytu. Nie można zmienić ani tokenu blokady, ani wersji wystąpienia.

Dotyczy