2013-01-07 33 views
1

我收到以下异常,正在抛出我的C#服务:ReaderWriterLockSlim - 不清楚异常消息

写入锁定可能无法在读取锁定时获取。这种模式很容易出现死锁。请确保在进行写入锁定之前释放读取锁定。如果需要升级,请使用升级锁来代替读锁。

Stack trace: at System.Threading.ReaderWriterLockSlim.TryEnterWriteLockCore(Int32 millisecondsTimeout) 
    at System.Threading.ReaderWriterLockSlim.TryEnterWriteLock(Int32 millisecondsTimeout) 
    at System.Threading.ReaderWriterLockSlim.EnterWriteLock() 

我试图理解这是什么意思。我相信这意味着我的应用程序中的一个线程已经获得了一个对象的读取锁定,并且同一个线程正在尝试获取同一个对象上的写入锁定。它是否正确?

+3

是,这种理解是正确的。 –

回答

0

我相信这意味着我的应用程序中的一个线程已经获得了一个对象的读取锁定,并且同一个线程现在正试图获取同一个对象上的写入锁定。它是否正确?

是的,这是正确的。

在这个线程的调用栈的某个地方,你已经获得了一个正常的读锁。

这里有ReaderWriterLockSlim乔·达菲的博客原文:http://www.bluebytesoftware.com

+0

链接已损坏。 –