ReaderWriterLockSlim.ExitWriteLock Метод

Определение

Уменьшает счетчик глубины рекурсии для режима записи и выходит из режима записи, если счетчик принял значение 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

Комментарии

Этот метод не учитывает порядок рекурсии. Например, если поток переходит в блокировку в обновляемом режиме, а затем переходит в блокировку в режиме записи, порядок выхода потока из двух режимов не имеет значения. Если блокировка разрешает рекурсию, поток может войти в блокировку в режиме записи, а затем ввести ее рекурсивно в режиме чтения; Порядок выхода потока из режима чтения и записи не имеет значения.

Выход из блокировки может сигнализировать о других ожидающих потоках.

Применяется к