Monitor와 비슷한 동기화 프리미티브가 필요하지만 입력 한 횟수만큼 종료 할 필요가 없습니다. 한 스레드에서 Monitor로 들어가서 같은 스레드에서 다시 입력하면 Monitor.Exit을 두 번 호출해야합니다. 하지만 한 번의 호출로 종료해야합니다.동기화 primitive "lock once"
이제 Monitor에 들어 가지 않는 Monitor 래퍼를 사용합니다. Monitor가 이미 현재 스레드에 의해 입력 되었다면 (따라서 한 번의 호출로 종료 할 수 있습니다). 그러나 .NET Framework에 하나가있을 수 있습니까?
하지 대답 :하지만 재진입 잠금이 좋은 생각이 아니다는 ... http://zaval.org/resources/library/butenhof1.html – tiago2014
Microsoft는 ReaderWriterLockSlim을 구성 할 수 있습니다 (예를 들어) 입력 할 재귀 적으로,하지만 그들은 좋은 아이디어라고 생각하지 않습니다. http://msdn.microsoft.com/en-us/library/system.threading.readerwriterlockslim.aspx – tiago2014