ReaderWriterLockSlim.ExitReadLock 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
减少读取模式的递归计数,并在生成的计数为 0(零)时退出读取模式。
public:
void ExitReadLock();
public void ExitReadLock ();
member this.ExitReadLock : unit -> unit
Public Sub ExitReadLock ()
例外
当前线程未进入读取模式锁定状态。
示例
以下示例演示如何使用 finally
块执行 ExitReadLock 方法,确保调用方退出读取模式。 示例中所示的 方法检索与键关联的值。 如果未找到密钥,则允许内部 Dictionary<TKey,TValue> 引发的异常终止方法。 方法 EnterReadLock 用于进入读取模式。
此代码是为 类提供的更大示例的 ReaderWriterLockSlim 一部分。
private ReaderWriterLockSlim cacheLock = new ReaderWriterLockSlim();
private Dictionary<int, string> innerCache = new Dictionary<int, string>();
Private cacheLock As New ReaderWriterLockSlim()
Private innerCache As New Dictionary(Of Integer, String)
public string Read(int key)
{
cacheLock.EnterReadLock();
try
{
return innerCache[key];
}
finally
{
cacheLock.ExitReadLock();
}
}
Public Function Read(ByVal key As Integer) As String
cacheLock.EnterReadLock()
Try
Return innerCache(key)
Finally
cacheLock.ExitReadLock()
End Try
End Function
注解
此方法对递归顺序不敏感。 例如,如果线程在可升级模式下进入锁,然后在读取模式下进入锁,则线程退出这两种模式的顺序并不重要。 如果锁允许递归,线程可以在写入模式下进入锁,然后在读取模式下以递归方式输入它:线程退出读取模式和写入模式的顺序并不重要。
退出锁可能表示其他正在等待的线程。