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