ReadWriterLockSlim이 "System.Threading.SynchronizationLockException - 쓰기 잠금이 해제되지 않고 해제됩니다."라는 상황이 발생합니다. ExitWriteLock()을 실행하려고 할 때. 내가 말할 수있는 한, try 블록에 들어간 후속 스레드는 잠금을 얻을 때까지 '차단'될 것이기 때문에 이런 일이 발생하지 않아야합니다. 내가 여기서 뭔가를 놓치고 있니?쓰기 잠금이 해제되지 않고 해제 됨
문제는 this one과 매우 유사하지만 해결 방법은 없습니다.
//Code simplified for example.
public class i18nService {
internal static ReaderWriterLockSlim cacheLock = new ReaderWriterLockSlim(LockRecursionPolicy.NoRecursion);
private string ProcessText()
{
try {
cacheLock.EnterWriteLock();
return "xyz";
}
finally {
cacheLock.ExitWriteLock(); // Error is throwing here.
}
}
}
G '데이 브렌든. 응답 해 주셔서 감사합니다. 나는 실제로 유사한 선을 따라 생각했지만 그것이 사실이라는 것을 확신하지 못했습니다. http://msdn.microsoft.com/en-us/library/system.threading.readerwriterlockslim.enterwritelock.aspx "이 메서드는 호출중인 스레드가 잠금을 입력 할 때까지 차단되므로 반환 할 수 없습니다. TryEnterWriteLock 메서드를 사용하십시오 지정된 간격 동안 블로킹하고 호출 스레드가 해당 간격 동안 쓰기 모드에 들어 가지 않으면 리턴합니다. " 그러나 여러분이 지적한대로 EnterWriteLock()에 대한 예외는 허용하지 않습니다 ... ... 흠 ... 내가 더 많이 그걸 가지고 놀도록하겠습니다. –