如果您有一些代碼塊想要在退出和清理對象時阻止執行,是否可以使用鎖來阻止執行?Monitor.Enter會發生什麼,但沒有匹配的Monitor.Exit?
Monitor.TryEnter(cleanupLock, ref acquiredLock);
TryEnter可以用來確保代碼不被執行,並且因爲它不會等待鎖定,所以不會出現死鎖。當它確定它是時間爲關斷
另一個線程會抓住該鎖。
Monitor.Enter(cleanupLock);
如果清除線程永遠不會調用
Monitor.Exit(cleanupLock);
將這項事業的一個問題?
違背傳統用法是反對這種模式的一個很好的論點。 –