ReaderWriterLockSlim.CurrentReadCount Propiedad

Definición

Obtiene el número total de subprocesos únicos que han entrado en el bloqueo en modo de lectura.

public:
 property int CurrentReadCount { int get(); };
public int CurrentReadCount { get; }
member this.CurrentReadCount : int
Public ReadOnly Property CurrentReadCount As Integer

Valor de propiedad

Int32

Número de subprocesos únicos que han entrado en el bloqueo en modo de lectura.

Ejemplos

En el ejemplo siguiente se muestra cómo usar la CurrentReadCount propiedad para generar una entrada de registro de eventos si el número de subprocesos en modo de lectura supera un umbral.

using (ReaderWriterLockSlim rwLock = new ReaderWriterLockSlim()) {
Using rwLock As New ReaderWriterLockSlim()
if (!EventLog.SourceExists("MySource"))
{
    EventLog.CreateEventSource("MySource", "MyPerformanceLog");
}
EventLog performanceLog = new EventLog();
performanceLog.Source = "MySource";
If Not EventLog.SourceExists("MySource") Then
    EventLog.CreateEventSource("MySource", "MyPerformanceLog")
End If
Dim performanceLog As New EventLog()
performanceLog.Source = "MySource"
int readCt = rwLock.CurrentReadCount;
if (readCt > READ_THRESHOLD)
{
    performanceLog.WriteEntry(String.Format(
        "{0} reader threads; exceeds recommended maximum.", readCt));
}
Dim readCt As Integer = rwLock.CurrentReadCount
If readCt > READ_THRESHOLD Then
    performanceLog.WriteEntry(String.Format( _
        "{0} reader threads; exceeds recommended maximum.", readCt))
End If

Comentarios

Un subproceso solo se cuenta una vez, incluso si el bloqueo permite la recursividad y el subproceso ha entrado en modo de lectura varias veces.

Use esta propiedad solo para fines de depuración, generación de perfiles y registro, y no para controlar el comportamiento de un algoritmo. Los resultados pueden cambiar tan pronto como se hayan calculado. Por lo tanto, no es seguro tomar decisiones basadas en esta propiedad.

Se aplica a