Поделиться через


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

Сведения о состоянии, связанные с асинхронной операцией.

Возвращаемое значение

Состояние асинхронной операции.

Комментарии

При получении блокировки поставщик сохраняемости может определить, что текущий экземпляр уже заблокирован в текущем хранилище. Если маркер блокировки соответствует маркеру блокировки текущего дескриптора, поставщик сохраняемости может попытаться отменить блокировку, проверив ее версию и передав ее в BeginBindReclaimedLock. Поставщик сохраняемости не должен изменять экземпляр до успешного освобождения блокировки. Если к блокировке не привязан ни один другой дескриптор, то операция BeginBindReclaimedLock завершается успешно и текущий дескриптор становится привязанным к блокировке. В противном случае BeginBindReclaimedLock или EndBindReclaimedLock вызывает исключение InstanceHandleConflictException. Если в других дескрипторах выполняются команда, то операция может ожидать завершения этих команд, чтобы определить возможность освобождения блокировки.

Текущий дескриптор экземпляра должен быть привязан к экземпляру и владельцу блокировки. Экземпляр не должен быть завершен. Маркер блокировки, связанный с владельцем блокировки, используется для определения владельца блокировки.

После привязки блокировки к дескриптору она остается привязанной в течение всего времени существования дескриптора. Маркер блокировки и версию экземпляра нельзя изменять.

Применяется к