ReaderWriterLockSlim.CurrentReadCount Propriedade

Definição

Obtém o número total de threads exclusivos que inseriram o bloqueio no modo de leitura.

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

Valor da propriedade

Int32

O número de threads exclusivos que inseriram o bloqueio no modo de leitura.

Exemplos

O exemplo a seguir mostra como usar a CurrentReadCount propriedade para gerar uma entrada de log de eventos se o número de threads no modo de leitura exceder um limite.

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

Comentários

Um thread é contado apenas uma vez, mesmo que o bloqueio permita a recursão e o thread tenha entrado no modo de leitura várias vezes.

Use essa propriedade somente para fins de depuração, criação de perfil e registro em log e não para controlar o comportamento de um algoritmo. Os resultados podem ser alterados assim que forem calculados. Portanto, não é seguro tomar decisões com base nessa propriedade.

Aplica-se a