Monitor.Enter
との正しい動作について何かが欠けていると思いますMonitor.TryEnter
。これは、問題を残りのコードから分離するために私が書いたコードの一部です。
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
です。それでlockObj
、後にロックされているMonitor.Enter
かどうか?これを少し見直してください。