ReaderWriterLockSlim.ExitReadLock Método

Definición

Reduce el recuento de recursividad para el modo de lectura y sale del modo de lectura si el recuento resultante es 0 (cero).

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

Excepciones

El subproceso actual no ha entrado en el bloqueo en modo de lectura.

Ejemplos

En el ejemplo siguiente se muestra cómo usar un finally bloque para ejecutar el ExitReadLock método , lo que garantiza que el autor de la llamada salga del modo de lectura. El método que se muestra en el ejemplo recupera el valor asociado a una clave. Si no se encuentra la clave, se permite que la excepción producida por el elemento interno Dictionary<TKey,TValue> finalice el método . El EnterReadLock método se usa para entrar en modo de lectura.

Este código forma parte de un ejemplo más grande proporcionado para la ReaderWriterLockSlim clase .

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

Comentarios

Este método no distingue el orden de recursividad. Por ejemplo, si un subproceso entra en un bloqueo en modo actualizable y, a continuación, entra en el bloqueo en modo de lectura, el orden en el que el subproceso sale de los dos modos no importa. Si un bloqueo permite la recursividad, un subproceso puede entrar en el bloqueo en modo de escritura y, a continuación, escribirlo de forma recursiva en modo de lectura; el orden en que el subproceso sale del modo de lectura y el modo de escritura no importa.

Salir del bloqueo podría indicar otros subprocesos en espera.

Se aplica a