ReaderWriterLockSlim.ExitWriteLock Méthode

Définition

Réduit le nombre de récurrences pour le mode écriture, et quitte le mode écriture si le nombre résultant est 0 (zéro).

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

Exceptions

Le thread actuel n'a pas entré le verrou en mode écriture.

Exemples

L’exemple suivant montre comment utiliser un finally bloc pour exécuter la ExitWriteLock méthode, en veillant à ce que l’appelant quitte le mode d’écriture. La méthode présentée dans l’exemple ajoute une nouvelle paire clé/valeur au cache synchronisé. Si la clé se trouve déjà dans le cache, l’exception levée par l’interne Dictionary<TKey,TValue> est autorisée à arrêter la méthode. La EnterWriteLock méthode est utilisée pour entrer le verrou en mode écriture.

Ce code fait partie d’un exemple plus large fourni pour la ReaderWriterLockSlim classe .

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

Remarques

Cette méthode n’est pas sensible à l’ordre de récursivité. Par exemple, si un thread entre dans un verrou en mode pouvant être mis à niveau, puis le verrou en mode écriture, l’ordre dans lequel le thread quitte les deux modes n’a pas d’importance. Si un verrou autorise la récursivité, un thread peut passer le verrou en mode écriture, puis l’entrer de manière récursive en mode lecture ; l’ordre dans lequel le thread quitte le mode lecture et le mode écriture n’a pas d’importance.

La sortie du verrou peut signaler d’autres threads en attente.

S’applique à