다음을 통해 공유


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

인스턴스에서 보유하고 있는 잠금의 버전 또는 0(지속성 공급자가 잠금 버전을 구현하지 않는 경우)입니다.

timeout
TimeSpan

비동기 작업의 제한 시간입니다.

callback
AsyncCallback

작업이 완료되면 호출될 메서드입니다.

state
Object

비동기 작업과 연결된 상태 정보입니다.

반환

IAsyncResult

비동기 작업의 상태입니다.

설명

잠금을 획득하려고 할 때 지속성 공급자는 현재 인스턴스가 현재 저장소에서 이미 잠겨 있다고 결정할 수 있습니다. 잠금 토큰이 현재 핸들의 잠금 토큰이 일치 하는 경우 지 속성 공급자는 해당 버전을 검사 하 고 BeginBindReclaimedLock으로 전달 하 여 잠금을 회수할 시도할 수 있습니다. 지속성 공급자는 잠금이 회수될 때까지 인스턴스를 변경하면 안 됩니다. 다른 핸들이 잠금에 바인딩되어 있지 않으면 BeginBindReclaimedLock 작업이 성공하고 현재 핸들이 잠금에 바인딩됩니다. 그렇지 않으면 BeginBindReclaimedLock 또는 EndBindReclaimedLock이 InstanceHandleConflictException을 throw합니다. 다른 핸들에서 명령이 진행 중이면 해당 명령의 결과를 통해 잠금의 회수 가능 여부가 결정될 때까지 기다리는 동안 작업이 완료되지 않을 수 있습니다.

현재 인스턴스 핸들이 인스턴스와 잠금 소유자에 바인딩되어 있어야 합니다. 인스턴스는 완료된 상태가 아니어야 합니다. 잠금 소유자에 연결된 잠금 토큰은 잠금의 소유자를 식별하는 데 사용됩니다.

잠금이 핸들에 바인딩되면 핸들의 수명 동안 바인딩 상태가 유지됩니다. 잠금 토큰이나 인스턴스 버전 중 어느 항목도 변경할 수 없습니다.

적용 대상