ReaderWriterLockSlim.ExitWriteLock Metoda

Definicja

Zmniejsza liczbę rekursji dla trybu zapisu i kończy tryb zapisu, jeśli wynikowa liczba to 0 (zero).

public:
 void ExitWriteLock();
public void ExitWriteLock ();
member this.ExitWriteLock : unit -> unit
Public Sub ExitWriteLock ()

Wyjątki

Bieżący wątek nie wprowadził blokady w trybie zapisu.

Przykłady

W poniższym przykładzie pokazano, jak za pomocą bloku wykonać metodę finally ExitWriteLock , upewniając się, że obiekt wywołujący kończy tryb zapisu. Metoda pokazana w przykładzie dodaje nową parę klucz/wartość do zsynchronizowanej pamięci podręcznej. Jeśli klucz znajduje się już w pamięci podręcznej, wyjątek zgłoszony przez wewnętrzny Dictionary<TKey,TValue> może zakończyć metodę. Metoda EnterWriteLock służy do wprowadzania blokady w trybie zapisu.

Ten kod jest częścią większego przykładu udostępnionego ReaderWriterLockSlim dla klasy.

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

Uwagi

Ta metoda nie jest wrażliwa na kolejność rekursji. Jeśli na przykład wątek wprowadza blokadę w trybie uaktualnialnym, a następnie wprowadza blokadę w trybie zapisu, kolejność, w której wątek kończy dwa tryby, nie ma znaczenia. Jeśli blokada zezwala na rekursję, wątek może wprowadzić blokadę w trybie zapisu, a następnie wprowadzić go cyklicznie w trybie odczytu; kolejność, w której wątek kończy tryb odczytu i tryb zapisu, nie ma znaczenia.

Zamknięcie blokady może sygnalizać inne wątki oczekujące.

Dotyczy