ReaderWriterLockSlim.ExitWriteLock 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 é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.