ReaderWriterLockSlim.ExitReadLock メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
読み取りモードの再帰カウントを減らし、結果のカウントが 0 (ゼロ) の場合には読み取りモードを終了します。
public:
void ExitReadLock();
public void ExitReadLock ();
member this.ExitReadLock : unit -> unit
Public Sub ExitReadLock ()
例外
現在のスレッドは読み取りモードでロックに入っていません。
例
次の例では、 ブロックを finally
使用して メソッドを ExitReadLock 実行し、呼び出し元が読み取りモードを終了する方法を示します。 例に示す メソッドは、キーに関連付けられている値を取得します。 キーが見つからない場合、内部 Dictionary<TKey,TValue> によってスローされた例外はメソッドを終了できます。 メソッドは EnterReadLock 、読み取りモードに入るために使用されます。
このコードは、 クラスに対して提供されるより大きな例の ReaderWriterLockSlim 一部です。
private ReaderWriterLockSlim cacheLock = new ReaderWriterLockSlim();
private Dictionary<int, string> innerCache = new Dictionary<int, string>();
Private cacheLock As New ReaderWriterLockSlim()
Private innerCache As New Dictionary(Of Integer, String)
public string Read(int key)
{
cacheLock.EnterReadLock();
try
{
return innerCache[key];
}
finally
{
cacheLock.ExitReadLock();
}
}
Public Function Read(ByVal key As Integer) As String
cacheLock.EnterReadLock()
Try
Return innerCache(key)
Finally
cacheLock.ExitReadLock()
End Try
End Function
注釈
このメソッドは再帰順序に依存しません。 たとえば、スレッドがアップグレード可能モードでロックに入り、読み取りモードでロックに入った場合、スレッドが 2 つのモードを終了する順序は関係ありません。 ロックで再帰が許可されている場合、スレッドは書き込みモードでロックに入り、読み取りモードで再帰的に入力できます。スレッドが読み取りモードと書き込みモードを終了する順序は関係ありません。
ロックを終了すると、他の待機スレッドに通知されることがあります。
適用対象
.NET