ReaderWriterLockSlim.ExitReadLock Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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).
public:
void ExitReadLock();
public void ExitReadLock ();
member this.ExitReadLock : unit -> unit
Public Sub 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 .
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 string Read(int key)
{
cacheLock.EnterReadLock();
try
{
return innerCache[key];
}
finally
{
cacheLock.ExitReadLock();
}
}
Public Function Read(ByVal key As Integer) As String
cacheLock.EnterReadLock()
Try
Return innerCache(key)
Finally
cacheLock.ExitReadLock()
End Try
End Function
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.