ReaderWriterLock.IsWriterLockHeld プロパティ
アセンブリ: mscorlib (mscorlib.dll 内)

現在のスレッドがライタ ロックを保持している場合は true。それ以外の場合は false。

ReaderWriterLock では、ライタ ロックを保持するスレッドでリーダー ロックを取得しようとすると、リーダー ロックは与えられず、代わりにライタ ロックのロック カウントがインクリメントされるということを示す例を次に示します。
Imports System Imports System.Threading Public Class LockHeld <MTAThread> _ Shared Sub Main() Dim rwLock As New ReaderWriterLock() rwLock.AcquireWriterLock(Timeout.Infinite) rwLock.AcquireReaderLock(Timeout.Infinite) If rwLock.IsReaderLockHeld Then Console.WriteLine("Reader lock held.") rwLock.ReleaseReaderLock() Else If rwLock.IsWriterLockHeld Then Console.WriteLine("Writer lock held.") rwLock.ReleaseWriterLock() Else Console.WriteLine("No locks held.") End If If rwLock.IsReaderLockHeld Then Console.WriteLine("Reader lock held.") rwLock.ReleaseReaderLock() Else If rwLock.IsWriterLockHeld Then Console.WriteLine("Writer lock held.") rwLock.ReleaseWriterLock() Else Console.WriteLine("No locks held.") End If End Sub End Class
using System; using System.Threading; class LockHeld { static void Main() { ReaderWriterLock rwLock = new ReaderWriterLock(); rwLock.AcquireWriterLock(Timeout.Infinite); rwLock.AcquireReaderLock(Timeout.Infinite); if(rwLock.IsReaderLockHeld) { Console.WriteLine("Reader lock held."); rwLock.ReleaseReaderLock(); } else if(rwLock.IsWriterLockHeld) { Console.WriteLine("Writer lock held."); rwLock.ReleaseWriterLock(); } else { Console.WriteLine("No locks held."); } if(rwLock.IsReaderLockHeld) { Console.WriteLine("Reader lock held."); rwLock.ReleaseReaderLock(); } else if(rwLock.IsWriterLockHeld) { Console.WriteLine("Writer lock held."); rwLock.ReleaseWriterLock(); } else { Console.WriteLine("No locks held."); } } }
using namespace System; using namespace System::Threading; int main() { ReaderWriterLock^ rwLock = gcnew ReaderWriterLock; rwLock->AcquireWriterLock( Timeout::Infinite ); rwLock->AcquireReaderLock( Timeout::Infinite ); if ( rwLock->IsReaderLockHeld ) { Console::WriteLine( "Reader lock held." ); rwLock->ReleaseReaderLock(); } else if ( rwLock->IsWriterLockHeld ) { Console::WriteLine( "Writer lock held." ); rwLock->ReleaseWriterLock(); } else { Console::WriteLine( "No locks held." ); } if ( rwLock->IsReaderLockHeld ) { Console::WriteLine( "Reader lock held." ); rwLock->ReleaseReaderLock(); } else if ( rwLock->IsWriterLockHeld ) { Console::WriteLine( "Writer lock held." ); rwLock->ReleaseWriterLock(); } else { Console::WriteLine( "No locks held." ); } }
import System.*; import System.Threading.*; class LockHeld { public static void main(String[] args) { ReaderWriterLock rwLock = new ReaderWriterLock(); rwLock.AcquireWriterLock(Timeout.Infinite); rwLock.AcquireReaderLock(Timeout.Infinite); if (rwLock.get_IsReaderLockHeld()) { Console.WriteLine("Reader lock held."); rwLock.ReleaseReaderLock(); } else { if (rwLock.get_IsWriterLockHeld()) { Console.WriteLine("Writer lock held."); rwLock.ReleaseWriterLock(); } else { Console.WriteLine("No locks held."); } } if (rwLock.get_IsReaderLockHeld()) { Console.WriteLine("Reader lock held."); rwLock.ReleaseReaderLock(); } else { if (rwLock.get_IsWriterLockHeld()) { Console.WriteLine("Writer lock held."); rwLock.ReleaseWriterLock(); } else { Console.WriteLine("No locks held."); } } } //main } //LockHeld

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


Weblioに収録されているすべての辞書からReaderWriterLock.IsWriterLockHeld プロパティを検索する場合は、下記のリンクをクリックしてください。

- ReaderWriterLock.IsWriterLockHeld プロパティのページへのリンク