ReaderWriterLockSlim.ExitReadLock Metódus
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
Csökkenti az olvasási mód rekurziós számát, és kilép az olvasási módból, ha az eredményül kapott szám 0 (nulla).
public:
void ExitReadLock();
public void ExitReadLock();
member this.ExitReadLock : unit -> unit
Public Sub ExitReadLock ()
Kivételek
Az aktuális szál nem olvasási módban lépett be a zárolásba.
Példák
Az alábbi példa bemutatja, hogyan lehet blokkot finally használni a ExitReadLock metódus végrehajtásához, biztosítva, hogy a hívó kilépjen az olvasási módból. A példában látható metódus lekéri a kulcshoz társított értéket. Ha a kulcs nem található, a belső Dictionary<TKey,TValue> által kibocsátott kivétel megszakíthatja a metódust. A EnterReadLock metódus az olvasási mód megadására szolgál.
Ez a kód egy nagyobb, az ReaderWriterLockSlim osztályhoz tartozó példa része.
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
Megjegyzések
Ez a módszer nem érzékeny a rekurziós sorrendre. Ha például egy szál frissíthető módban lép be egy zárba, majd olvasási módban adja meg a zárolást, az a sorrend, amelyben a szál kilép a két módból, nem számít. Ha a zárolás lehetővé teszi a rekurziót, a szálak írási módban léphetnek be a zárolásba, majd rekurzívan beírhatják olvasási módban; az a sorrend, amelyben a szál kilép az olvasási és írási módból, nem számít.
A zárolásból való kilépés más várakozási szálakat is jelezhet.