나는 ReaderWriterLockSlim에 좌절감을 느껴 ExitWriteLock을 지연시킵니다. 타이머 콜백에서 WriteLock이 해제되는 이유는 무엇입니까?ReaderWriterLockSlim 및 타이머
var _lock = new ReaderWriterLockSlim();
_lock.EnterWriteLock();
Assert.AreEqual(true, _lock.IsWriteLockHeld); // good
System.Threading.Timer timer = new Timer(state =>
{
_lock.ExitWriteLock(); //throws exception that lock is not held
}, null, 1, -1);
Thread.Sleep(1000);
Assert.AreEqual(false, _lock.IsWriteLockHeld);
이 코드가 정확히 무엇을 기대한다고 설명 할 수 있습니까? 이 '타이머'는 어떤 유형입니까? 또한 MSDN을 참조하십시오 : ['IsWriteLockHeld'는 현재 스레드가 쓰기 모드에서 잠금을 입력했는지 여부를 나타내는 값을 _ "반환합니다 (_) (https://msdn.microsoft.com/en-us/library) /system.threading.readerwriterlockslim.iswritelockheould(v=vs.110).aspx) ... – CodeCaster