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

Комментарии

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

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

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