ReaderWriterLockSlim.CurrentReadCount 屬性

定義

取得已進入讀取模式鎖定狀態的唯一執行緒總數。Gets the total number of unique threads that have entered the lock in read mode.

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

屬性值

已進入讀取模式鎖定狀態的唯一執行緒數目。The number of unique threads that have entered the lock in read mode.

範例

下列範例示範如果讀取模式中的CurrentReadCount執行緒數目超過臨界值, 如何使用屬性來產生事件記錄檔專案。The following example shows how to use the CurrentReadCount property to generate an event log entry if the number of threads in read mode exceeds a threshold.

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

備註

執行緒只會計算一次, 即使鎖定允許遞迴, 而且執行緒已經多次進入讀取模式也是一樣。A thread is counted only once, even if the lock allows recursion and the thread has entered read mode multiple times.

此屬性僅適用于偵錯工具、分析和記錄用途, 而不是用來控制演算法的行為。Use this property only for debugging, profiling, and logging purposes, and not to control the behavior of an algorithm. 結果會在計算後立即變更。The results can change as soon as they have been calculated. 因此, 根據此屬性做出決策並不安全。Therefore, it is not safe to make decisions based on this property.

適用於