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 может ожидать завершения этих команд, чтобы определить возможность освобождения блокировки.
Текущий дескриптор экземпляра должен быть привязан к экземпляру и владельцу блокировки. Экземпляр не должен быть завершен. Маркер блокировки, связанный с владельцем блокировки, используется для определения владельца блокировки.
После привязки блокировки к дескриптору она остается привязанной в течение всего времени существования дескриптора. Маркер блокировки и версию экземпляра нельзя изменять.