我一直在寻找一种锁定特定代码段的方法。
namespace x
{
public class y
{
private Object obj = new Object();
private void A()
{
lock(obj)
{
//critical section
}
}
}
}
根据请求,我的应用程序从不同来源进入方法 A(使用类 Y),并且可以看出锁定对象无法保护关键部分。
我正在寻找保护关键部分的方法,即使多个对象尝试访问该代码段并且我不想使用静态锁定对象。
请帮助我。
最佳答案
锁定可以完成这项工作,但是您锁定了一个实例字段,它只会保护同一实例的关键部分。如果您想锁定所有实例,请将您的标志 (Obj) 设为静态。
namespace x
{
public class y
{
static private Object obj = new Object();
private void A()
{
lock(obj)
{
//critical section
}
}
}
}
关于c# - 可以在 C# 中跨多个对象锁定工作吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43494692/