有没有办法测试当前线程是否持有对象的监视器锁? IE。相当于 Java 中的 Thread.holdsLock。
谢谢,
最佳答案
我不相信有。你可以做一些很糟糕的事情,比如调用 Monitor.Wait(monitor, 0)
并捕获 SynchronizationLockException
,但这非常可怕(理论上可以“捕获”一个脉冲另一个线程正在等待)。
恐怕我建议您尝试重新设计,这样您就不需要它了。
编辑:在 .NET 4.5 中,这可用于 Monitor.IsEntered
.
关于c# - 如何测试线程是否持有 C# 中的对象锁?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2407943/