ReaderWriterLockSlim.CurrentReadCount プロパティ
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
読み取りモードでロックに入った一意のスレッドの総数を取得します。
public:
property int CurrentReadCount { int get(); };
public int CurrentReadCount { get; }
member this.CurrentReadCount : int
Public ReadOnly Property CurrentReadCount As Integer
プロパティ値
読み取りモードでロックに入った一意のスレッドの数。
例
次の例では、 プロパティを使用 CurrentReadCount して、読み取りモードのスレッド数がしきい値を超えた場合にイベント ログ エントリを生成する方法を示します。
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
注釈
ロックで再帰が許可され、スレッドが複数回読み取りモードに入った場合でも、スレッドは 1 回だけカウントされます。
このプロパティは、デバッグ、プロファイリング、ログ記録の目的でのみ使用し、アルゴリズムの動作を制御する場合は使用しません。 結果は、計算されるとすぐに変更される可能性があります。 したがって、このプロパティに基づいて決定することは安全ではありません。
適用対象
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET