Udostępnij za pośrednictwem


ReaderWriterLockSlim.CurrentReadCount Właściwość

Definicja

Pobiera całkowitą liczbę unikatowych wątków, które wprowadziły blokadę w trybie odczytu.

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

Wartość właściwości

Liczba unikatowych wątków, które wprowadziły blokadę w trybie odczytu.

Przykłady

W poniższym przykładzie pokazano, jak za pomocą CurrentReadCount właściwości wygenerować wpis dziennika zdarzeń, jeśli liczba wątków w trybie odczytu przekracza próg.

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

Uwagi

Wątek jest liczone tylko raz, nawet jeśli blokada zezwala na rekursję, a wątek wszedł w tryb odczytu wiele razy.

Tej właściwości należy używać tylko do debugowania, profilowania i rejestrowania, a nie do kontrolowania zachowania algorytmu. Wyniki mogą ulec zmianie zaraz po ich obliczeniu. W związku z tym nie jest bezpieczne podejmowanie decyzji na podstawie tej właściwości.

Dotyczy