ReaderWriterLockSlim.ExitWriteLock Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
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.