InstancePersistenceContext.BeginBindReclaimedLock Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Beginnen Sie einen asynchronen Vorgang, um eine vorhandene Sperre für eine Instanz an das aktuelle Instanzhandle zu binden. Die Version der vorhandenen Sperre wird als Parameter übergeben.
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
Parameter
- instanceVersion
- Int64
Die Version der Sperre, die auf der Instanz gespeichert ist, oder null, wenn der Persistenzanbieter keine Sperrversionen implementiert.
- timeout
- TimeSpan
Der Timeoutzeitraum für den asynchronen Vorgang.
- callback
- AsyncCallback
Die Methode, die aufgerufen werden soll, wenn der Vorgang abgeschlossen ist.
- state
- Object
Die Statusinformationen, die dem asynchronen Vorgang zugeordnet sind.
Gibt zurück
Der Status eines asynchronen Vorgangs.
Hinweise
Beim Versuch, eine Sperre abzurufen, kann der Persistenzanbieter entscheiden, dass die aktuelle Instanz bereits im aktuellen Speicher gesperrt ist. Wenn das Sperrtoken mit dem Sperrtoken des aktuellen Handles übereinstimmt, kann der Persistenzanbieter versuchen, die Sperre zurückzufordern, indem die Version überprüft und an "BeginBindReclaimedLock" übergeben wird. Der Persistenzanbieter darf keine Änderungen an der Instanz vornehmen, bis die Sperre erfolgreich zurückgefordert wurde. Wenn kein anderer Handle an die Sperre gebunden ist, wird der BeginBindReclaimedLock-Vorgang erfolgreich ausgeführt, und der aktuelle Handle wird an die Sperre gebunden. Andernfalls löst BeginBindReclaimedLock oder EndBindReclaimedLock InstanceHandleConflictException aus. Wenn Befehle auf anderen Handles ausgeführt werden, wird der Vorgang möglicherweise nicht abgeschlossen, während auf das Ergebnis dieser Befehle gewartet wird, um zu entscheiden, ob die Sperre erneut beansprucht werden kann.
Das aktuelle Instanzhandle muss an eine Instanz und einen Sperrbesitzer gebunden sein. Die Instanz darf nicht abgeschlossen werden. Das dem Sperrbesitzer zugeordnete Sperrtoken wird verwendet, um den Besitzer der Sperre zu identifizieren.
Sobald eine Sperre an einen Handle gebunden ist, bleibt sie für die Lebensdauer des Handles gebunden. Weder das Sperrtoken noch die Instanzversion können geändert werden.