ReaderWriterLockSlim.CurrentReadCount Eigenschaft

Definition

Ruft die Gesamtzahl von eindeutigen Threads ab, denen die Sperre im Lesemodus zugewiesen ist.

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

Eigenschaftswert

Int32

Die Anzahl von eindeutigen Threads, denen die Sperre im Lesemodus zugewiesen ist.

Beispiele

Im folgenden Beispiel wird gezeigt, wie Die CurrentReadCount Eigenschaft zum Generieren eines Ereignisprotokolleintrags verwendet wird, 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 den Lesemodus eingegeben hat.

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