Monitor.Enter
및 Monitor.TryEnter
의 올바른 동작에 대해 뭔가 빠졌다고 생각합니다. 여기에 내가 코드의 나머지 부분에서 문제를 분리하기 위해 작성한 코드의 일부는 다음과 같습니다Monitor.TryEnter는 Monitor.Enter 후에도 항상 true를 반환합니다.
object lockObj = new object();
bool result = Monitor.TryEnter(lockObj);
Console.Write(result);
결과는 항상 true
입니다. 여기에 놀라움이 없습니다.
object lockObj = new object();
Monitor.Enter(lockObj);
bool result = Monitor.TryEnter(lockObj);
Console.Write(result);
그러나 이번에도 true
입니다. Monitor.Enter
이후에 lockObj
이 잠겼습니까? 이걸 좀 신선한 모습으로 보여주세요.
당신 말이 맞습니다. 나는'Monitor.TryEnter'의 [documentation] (http://msdn.microsoft.com/en-us/library/4tssbxcw)에 대해 좀 더 명시해야한다고 생각합니다. – rotman