我一直在寻找一种锁定特定代码的方法。
namespace x
{
public class y
{
private Object obj = new Object();
private void A()
{
lock(obj)
{
//critical section
}
}
}
}
根据请求,我的应用程序从不同的源(使用Y类)进入方法A,并且可以看到锁定对象无法保护关键部分。
我正在寻找保护关键部分的方法,即使多个对象试图访问这段代码而且我不想使用静态锁定对象。
请帮帮我。
答案 0 :(得分:2)
Lock执行该任务,但是您锁定了一个实例字段,它将仅针对同一实例保护您的关键部分。如果要锁定所有实例,请将标志(Obj)设为静态。
namespace x
{
public class y
{
static private Object obj = new Object();
private void A()
{
lock(obj)
{
//critical section
}
}
}
}