ReaderWriterLockSlim.CurrentReadCount Propriété

Définition

Obtient le nombre total de threads uniques qui ont entré le verrou en mode lecture.

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

Valeur de propriété

Int32

Nombre de threads uniques qui ont entré le verrou en mode lecture.

Exemples

L’exemple suivant montre comment utiliser la CurrentReadCount propriété pour générer une entrée de journal des événements si le nombre de threads en mode lecture dépasse un seuil.

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

Remarques

Un thread n’est compté qu’une seule fois, même si le verrou autorise la récursivité et que le thread est entré en mode lecture plusieurs fois.

Utilisez cette propriété uniquement à des fins de débogage, de profilage et de journalisation, et non pour contrôler le comportement d’un algorithme. Les résultats peuvent changer dès qu’ils ont été calculés. Par conséquent, il n’est pas sûr de prendre des décisions basées sur cette propriété.

S’applique à