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


InstancePersistenceContext.BindReclaimedLock(Int64, TimeSpan) Метод

Определение

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

public:
 void BindReclaimedLock(long instanceVersion, TimeSpan timeout);
public void BindReclaimedLock (long instanceVersion, TimeSpan timeout);
member this.BindReclaimedLock : int64 * TimeSpan -> unit
Public Sub BindReclaimedLock (instanceVersion As Long, timeout As TimeSpan)

Параметры

instanceVersion
Int64

Версия блокировки, удерживаемой для экземпляра, или нулевое значение, если в поставщике сохраняемости не реализованы версии блокировки.

timeout
TimeSpan

Значение времени ожидания для операции.

Комментарии

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

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

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

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