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