InstancePersistenceContext.BeginBindReclaimedLock メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
インスタンスの既存のロックを現在のインスタンス ハンドルにバインドする非同期操作を開始します。 既存のロックのバージョンがパラメーターとして渡されます。
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
非同期操作に関連付けられている状態情報。
返品
非同期操作の状態。
注釈
ロックを取得しようとすると、永続化プロバイダーは、現在のインスタンスが現在のストアで既にロックされていることを判断できます。 ロック トークンが現在のハンドルのロック トークンと一致する場合、永続化プロバイダーは、そのバージョンを調べて BeginBindReclaimedLock に渡すことで、ロックの再利用を試みることができます。 永続化プロバイダーは、ロックが正常に再利用されるまで、インスタンスに変更を加えてはなりません。 他のハンドルがロックにバインドされていない場合、BeginBindReclaimedLock 操作は成功し、現在のハンドルはロックにバインドされます。 それ以外の場合、BeginBindReclaimedLock または EndBindReclaimedLock は InstanceHandleConflictException をスローします。 他のハンドルでコマンドが進行中の場合、これらのコマンドの結果がロックを再利用できるかどうかを判断するのを待っている間、操作が完了しない可能性があります。
現在のインスタンス ハンドルは、インスタンスとロック所有者にバインドする必要があります。 インスタンスを完了することはできません。 ロック所有者に関連付けられているロック トークンは、ロックの所有者を識別するために使用されます。
ロックがハンドルにバインドされると、ハンドルの有効期間中はバインドされたままになります。 ロック トークンもインスタンス バージョンも変更できません。