ReaderWriterLockSlim.ExitReadLock Méthode

Définition

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

C#
public void ExitReadLock();

Exceptions

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

Exemples

L’exemple suivant montre comment utiliser un finally bloc pour exécuter la ExitReadLock méthode, en veillant à ce que l’appelant quitte le mode lecture. La méthode illustrée dans l’exemple récupère la valeur associée à une clé. Si la clé est introuvable, l’exception levée par l’interne Dictionary<TKey,TValue> est autorisée à arrêter la méthode. La EnterReadLock méthode est utilisée pour entrer en mode lecture.

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

C#
private ReaderWriterLockSlim cacheLock = new ReaderWriterLockSlim();
private Dictionary<int, string> innerCache = new Dictionary<int, string>();
C#
public string Read(int key)
{
    cacheLock.EnterReadLock();
    try
    {
        return innerCache[key];
    }
    finally
    {
        cacheLock.ExitReadLock();
    }
}

Remarques

Cette méthode n’est pas sensible à l’ordre de récursivité. Par exemple, si un thread entre dans un verrou en mode mise à niveau, puis entre dans le verrou en mode lecture, 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 entrer 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 d’écriture n’a pas d’importance.

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

S’applique à

Produit Versions
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0