ReaderWriterLockSlim.ExitReadLock Yöntem

Tanım

Okuma modu için özyineleme sayısını azaltır ve sonuçta elde edilen sayı 0 (sıfır) ise okuma modundan çıkar.

public:
 void ExitReadLock();
public void ExitReadLock();
member this.ExitReadLock : unit -> unit
Public Sub ExitReadLock ()

Özel durumlar

Geçerli iş parçacığı, kilit okuma moduna girmemiş.

Örnekler

Aşağıdaki örnekte, çağıranın okuma modundan ExitReadLock çıktığından emin olarak yöntemi yürütmek için bir finally bloğun nasıl kullanılacağı gösterilmektedir. Örnekte gösterilen yöntem bir anahtarla ilişkili değeri alır. Anahtar bulunamazsa, iç Dictionary<TKey,TValue> tarafından oluşan özel durumun yöntemi sonlandırmasına izin verilir. EnterReadLock yöntemi, okuma moduna girmek için kullanılır.

Bu kod, sınıfı için ReaderWriterLockSlim sağlanan daha büyük bir örneğin parçasıdır.

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

Açıklamalar

Bu yöntem özyineleme sırasına duyarlı değildir. Örneğin, bir iş parçacığı yükseltilebilir modda bir kilit girer ve ardından kilidi okuma moduna girerse, iş parçacığının iki moddan çıkma sırası önemli değildir. Bir kilit özyinelemeye izin veriyorsa, bir iş parçacığı kilidi yazma moduna girebilir ve ardından yinelemeli olarak okuma moduna girebilir; iş parçacığının okuma modundan çıkma sırası ve yazma modu önemli değildir.

Kilit çıkışı diğer bekleyen iş parçacıklarına işaret edebilir.

Şunlara uygulanır