我有一些可以从锁外部的或内部调用的代码。我需要在锁内做一些事情。代码本身不知道从何处调用它。所以,我需要这样的东西:
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/