我有一些代码可以从锁的内部或调用。我需要在锁内做一些事情。代码本身不知道从哪里调用它。所以,我需要这样的东西:
lock (MyLock) {
if (INSIDE_LOCK) ...
}
我知道这听起来很奇怪和错误,但我需要它来解决兼容性问题。否则,我将不得不重写大量代码,因为我没有测试,所以这样做是有风险的。
最佳答案
试试 Monitor
类:
if (Monitor.IsEntered(MyLock)) {...}
自(见下面的 René Vogt 评论)lock
lock(MyLock) {
...
}
实际上是
的语法糖 Monitor.Enter(MyLock);
try {
...
}
finally {
Monitor.Leave(MyLock);
}
关于c# - 如何检查当前代码是否为 "inside"锁?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38746622/