ReaderWriterLockSlim.ExitWriteLock Methode

Definitie

Vermindert het aantal recursie voor de schrijfmodus en sluit de schrijfmodus af als het resulterende aantal 0 (nul) is.

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

Uitzonderingen

De huidige thread heeft de vergrendeling niet ingevoerd in de schrijfmodus.

Voorbeelden

In het volgende voorbeeld ziet u hoe u een finally blok gebruikt om de methode uit te voeren, zodat de aanroeper de ExitWriteLock schrijfmodus afsluit. Met de methode die in het voorbeeld wordt weergegeven, wordt een nieuw sleutel-/waardepaar toegevoegd aan de gesynchroniseerde cache. Als de sleutel zich al in de cache bevindt, mag de door de binnenste gegenereerde Dictionary<TKey,TValue> uitzondering de methode beƫindigen. De EnterWriteLock methode wordt gebruikt om de vergrendeling in de schrijfmodus in te voeren.

Deze code maakt deel uit van een groter voorbeeld voor de ReaderWriterLockSlim klasse.

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

Opmerkingen

Deze methode is niet gevoelig voor recursievolgorde. Als een thread bijvoorbeeld een vergrendeling in de upgradebare modus invoert en vervolgens de vergrendeling in de schrijfmodus invoert, maakt de volgorde waarin de thread de twee modi verlaat niet uit. Als een vergrendeling recursie toestaat, kan een thread de vergrendeling in de schrijfmodus invoeren en deze recursief invoeren in de leesmodus; de volgorde waarin de thread de leesmodus verlaat en de schrijfmodus niet uitmaakt.

Het afsluiten van de vergrendeling kan duiden op andere wachtende threads.

Van toepassing op