ReaderWriterLockSlim.CurrentReadCount Vlastnost
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Získá celkový počet jedinečných vláken, které zadaly zámek v režimu čtení.
public:
property int CurrentReadCount { int get(); };
public int CurrentReadCount { get; }
member this.CurrentReadCount : int
Public ReadOnly Property CurrentReadCount As Integer
Hodnota vlastnosti
Počet jedinečných vláken, která zadala zámek v režimu čtení.
Příklady
Následující příklad ukazuje, jak použít CurrentReadCount vlastnost k vygenerování položky protokolu událostí, pokud počet vláken v režimu čtení překračuje prahovou hodnotu.
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
Poznámky
Vlákno se počítá pouze jednou, i když zámek umožňuje rekurzi a vlákno několikrát vstoupilo do režimu čtení.
Tuto vlastnost použijte pouze pro účely ladění, profilace a protokolování a ne k řízení chování algoritmu. Výsledky se můžou změnit hned po výpočtu. Proto není bezpečné rozhodovat na základě této vlastnosti.