Condividi tramite


ReaderWriterLockSlim.CurrentReadCount Proprietà

Definizione

Ottiene il numero complessivo di thread univoci per i quali è stato attivato il blocco in modalità lettura.

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

Valore della proprietà

Int32

Numero di thread univoci per i quali è stato attivato il blocco in modalità lettura.

Esempio

Nell'esempio seguente viene illustrato come usare la CurrentReadCount proprietà per generare una voce del registro eventi se il numero di thread in modalità di lettura supera una soglia.

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

Commenti

Un thread viene conteggiato una sola volta, anche se il blocco consente la ricorsione e il thread ha immesso più volte la modalità di lettura.

Usare questa proprietà solo per il debug, la profilatura e la registrazione e non per controllare il comportamento di un algoritmo. I risultati possono cambiare non appena sono stati calcolati. Pertanto, non è sicuro prendere decisioni in base a questa proprietà.

Si applica a