ReaderWriterLockSlim.ExitWriteLock Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Sníží počet rekurzí pro režim zápisu a ukončí režim zápisu, pokud je výsledný počet 0 (nula).
public:
void ExitWriteLock();
public void ExitWriteLock ();
member this.ExitWriteLock : unit -> unit
Public Sub ExitWriteLock ()
Výjimky
Aktuální vlákno nevstoupilo do zámku v režimu zápisu.
Příklady
Následující příklad ukazuje, jak použít finally
blok ke spuštění ExitWriteLock metody a zajistit, že volající ukončí režim zápisu. Metoda uvedená v příkladu přidá do synchronizované mezipaměti nový pár klíč/hodnota. Pokud je klíč již v mezipaměti, výjimka vyvolaná vnitřním Dictionary<TKey,TValue> objektem může ukončit metodu . Metoda EnterWriteLock se používá k přechodu na zámek v režimu zápisu.
Tento kód je součástí většího příkladu ReaderWriterLockSlim pro třídu .
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
Poznámky
Tato metoda není citlivá na pořadí rekurze. Pokud například vlákno přejde na zámek v upgradovatelném režimu a pak přejde do režimu zápisu, nezáleží na pořadí, ve kterém vlákno ukončí oba režimy. Pokud zámek umožňuje rekurze, vlákno může vstoupit do zámku v režimu zápisu a poté jej zadat rekurzivně v režimu čtení; pořadí, ve kterém vlákno ukončí režim čtení a režim zápisu nezáleží.
Ukončení zámku může signalizovat další čekající vlákna.