InstancePersistenceContext.BeginBindReclaimedLock Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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.