Freigeben über


ReaderWriterLockSlim.CurrentReadCount Eigenschaft

Definition

Ruft die Gesamtzahl der eindeutigen Threads ab, die die Sperre im Lesemodus eingegeben haben.

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

Eigenschaftswert

Die Anzahl der eindeutigen Threads, die die Sperre im Lesemodus eingegeben haben.

Beispiele

Im folgenden Beispiel wird gezeigt, wie Die CurrentReadCount Eigenschaft verwendet wird, um einen Ereignisprotokolleintrag zu generieren, wenn die Anzahl der Threads im Lesemodus einen Schwellenwert überschreitet.

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

Hinweise

Ein Thread wird nur einmal gezählt, auch wenn die Sperre rekursion zulässt und der Thread mehrmals in den Lesemodus gelangt ist.

Verwenden Sie diese Eigenschaft nur für Debugging-, Profilerstellungs- und Protokollierungszwecke und nicht zum Steuern des Verhaltens eines Algorithmus. Die Ergebnisse können sich ändern, sobald sie berechnet wurden. Daher ist es nicht sicher, Entscheidungen basierend auf dieser Eigenschaft zu treffen.

Gilt für: