ReaderWriterLock.ReleaseReaderLock メソッドとは? わかりやすく解説

Weblio 辞書 > コンピュータ > .NET Framework クラス ライブラリ リファレンス > ReaderWriterLock.ReleaseReaderLock メソッドの意味・解説 

ReaderWriterLock.ReleaseReaderLock メソッド

ロック カウントデクリメントます。

名前空間: System.Threading
アセンブリ: mscorlib (mscorlib.dll 内)
構文構文

Public Sub ReleaseReaderLock
Dim instance As ReaderWriterLock

instance.ReleaseReaderLock
public void ReleaseReaderLock ()
public:
void ReleaseReaderLock ()
public void ReleaseReaderLock ()
public function ReleaseReaderLock ()
例外例外
解説解説

ReleaseReaderLock呼び出すと、ロック カウントデクリメントされますロック カウントが 0 になると、ロック解放されます。

メモメモ

スレッドライタ ロック保持している場合ReleaseReaderLock呼び出しは、ReleaseWriterLock の呼び出しと同じ効果ありますスレッドロック保持していないときに ReleaseReaderLock呼び出すと、ApplicationExceptionスローさます。

使用例使用例
' The complete code is located in the ReaderWriterLock
' class topic.
Imports System
Imports System.Threading
Imports Microsoft.VisualBasic

Public Class Test
    ' Declaring the ReaderWriterLock at the class level
    ' makes it visible to all threads.
    Private Shared rwl As
 New ReaderWriterLock()
    ' For this example, the shared resource protected by the
    ' ReaderWriterLock is just an integer.
    Private Shared resource As
 Integer = 0
<br /><span space="preserve">...</span><br
 />    ' Shows how to request and release a reader lock, and
    ' how to handle time-outs.
    Shared Sub ReadFromResource(timeOut As
 Integer)
        Try
            rwl.AcquireReaderLock(timeOut)
            Try
                ' It is safe for this thread to read from
                ' the shared resource.
                Display("reads resource value " &
 resource)
                Interlocked.Increment(reads)
            Finally 
                ' Ensure that the lock is released.
                rwl.ReleaseReaderLock()
            End Try
        Catch ex As ApplicationException
            ' The reader lock request timed out.
            Interlocked.Increment(readerTimeouts)
        End Try
    End Sub 'ReadFromResource
<br /><span space="preserve">...</span><br
 />End Class 'Test 
// The complete code is located in the ReaderWriterLock
// class topic.
using System;
using System.Threading;

public class Test
{
    // Declaring the ReaderWriterLock at the class level
    // makes it visible to all threads.
    static ReaderWriterLock rwl = new ReaderWriterLock();
    // For this example, the shared resource protected by the
    // ReaderWriterLock is just an integer.
    static int resource = 0;
<br /><span space="preserve">...</span><br /> 
   // Shows how to request and release a reader lock, and
    // how to handle time-outs.
    static void ReadFromResource(int
 timeOut)
    {
        try
        {
            rwl.AcquireReaderLock(timeOut);
            try
            {
                // It is safe for this thread to read from
                // the shared resource.
                Display("reads resource value " + resource); 
                Interlocked.Increment(ref reads);
            }        
            finally
            {
                // Ensure that the lock is released.
                rwl.ReleaseReaderLock();
            }
        }
        catch (ApplicationException)
        {
            // The reader lock request timed out.
            Interlocked.Increment(ref readerTimeouts);
        }
    }
<br /><span space="preserve">...</span><br />}
// The complete code is located in the ReaderWriterLock
// class topic.
using namespace System;
using namespace System::Threading;
public ref class Test
{
public:

   // Declaring the ReaderWriterLock at the class level
   // makes it visible to all threads.
   static ReaderWriterLock^ rwl = gcnew ReaderWriterLock;

   // For this example, the shared resource protected by the
   // ReaderWriterLock is just an integer.
   static int resource = 0;

<br /><span space="preserve">...</span><br /> 
  // Shows how to request and release a reader lock, and
   // how to handle time-outs.
   static void ReadFromResource( int
 timeOut )
   {
      try
      {
         rwl->AcquireReaderLock( timeOut );
         try
         {
            
            // It is safe for this thread to read from
            // the shared resource.
            Display( String::Format( "reads resource value {0}", resource
 ) );
            Interlocked::Increment( reads );
         }
         finally
         {
            
            // Ensure that the lock is released.
            rwl->ReleaseReaderLock();
         }

      }
      catch ( ApplicationException^ ) 
      {
         
         // The reader lock request timed out.
         Interlocked::Increment( readerTimeouts );
      }

   }


<br /><span space="preserve">...</span><br />};


// The complete code is located in the ReaderWriterLock
// class topic.
import System.*;
import System.Threading.*;
import System.Threading.Thread;    

public class Test
{
    // Declaring the ReaderWriterLock at the class level
    // makes it visible to all threads.
    private static ReaderWriterLock rwl = new
 ReaderWriterLock();

    // For this example, the shared resource protected by the
    // ReaderWriterLock is just an integer.
    private static int resource
 = 0;
<br /><span space="preserve">...</span><br /> 
   // Shows how to request and release a reader lock, and
    // how to handle time-outs.
    static void ReadFromResource(int
 timeOut)
    {
        try {
            rwl.AcquireReaderLock(timeOut);
            try {
                // It is safe for this thread to read from
                // the shared resource.
                Display(("reads resource value " + resource));
                Interlocked.Increment(reads);
            }
            finally {
                // Ensure that the lock is released.
                rwl.ReleaseReaderLock();
            }
        }
        catch (ApplicationException exp) {
            // The reader lock request timed out.
            Interlocked.Increment(readerTimeouts);
        }
    } //ReadFromResource
<br /><span space="preserve">...</span><br />}
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照


このページでは「.NET Framework クラス ライブラリ リファレンス」からReaderWriterLock.ReleaseReaderLock メソッドを検索した結果を表示しています。
Weblioに収録されているすべての辞書からReaderWriterLock.ReleaseReaderLock メソッドを検索する場合は、下記のリンクをクリックしてください。
 全ての辞書からReaderWriterLock.ReleaseReaderLock メソッド を検索

英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

ReaderWriterLock.ReleaseReaderLock メソッドのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



ReaderWriterLock.ReleaseReaderLock メソッドのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2025 Microsoft.All rights reserved.

©2025 GRAS Group, Inc.RSS