ReaderWriterLockSlim.ExitWriteLock メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
書き込みモードの再帰カウントを減らし、結果のカウントが 0 (ゼロ) の場合には書き込みモードを終了します。
public:
void ExitWriteLock();
public void ExitWriteLock ();
member this.ExitWriteLock : unit -> unit
Public Sub ExitWriteLock ()
例外
現在のスレッドは書き込みモードでロックに入っていません。
例
次の例では、ブロックを finally
使用してメソッドを ExitWriteLock 実行し、呼び出し元が書き込みモードを終了するようにする方法を示します。 この例に示すメソッドは、同期されたキャッシュに新しいキーと値のペアを追加します。 キーが既にキャッシュ内にある場合は、内部 Dictionary<TKey,TValue> によってスローされる例外でメソッドを終了できます。 この EnterWriteLock メソッドは、書き込みモードでロックを開始するために使用されます。
このコードは、クラスに提供されるより大きな例の 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 void Add(int key, string value)
{
cacheLock.EnterWriteLock();
try
{
innerCache.Add(key, value);
}
finally
{
cacheLock.ExitWriteLock();
}
}
Public Sub Add(ByVal key As Integer, ByVal value As String)
cacheLock.EnterWriteLock()
Try
innerCache.Add(key, value)
Finally
cacheLock.ExitWriteLock()
End Try
End Sub
注釈
このメソッドは再帰順序に依存しません。 たとえば、スレッドがアップグレード可能モードでロックに入り、書き込みモードでロックに入った場合、スレッドが 2 つのモードを終了する順序は関係ありません。 ロックで再帰が許可されている場合、スレッドは書き込みモードでロックに入り、そのロックを読み取りモードで再帰的に入力できます。スレッドが読み取りモードと書き込みモードを終了する順序は関係ありません。
ロックを終了すると、他の待機スレッドに通知される場合があります。