gpt4 book ai didi

c# - 可以在C#中跨多个对象锁定工作?

转载 作者:行者123 更新时间:2023-12-03 12:59:31 26 4
gpt4 key购买 nike

我一直在寻找一种锁定特定代码段的方法。

namespace x
{
public class y
{
private Object obj = new Object();
private void A()
{
lock(obj)
{
//critical section
}
}
}
}

根据请求,我的应用程序从不同的来源(使用类Y)进入方法A,可以看到锁对象未能保护关键部分。

我正在寻找一种保护关键部分的方法,即使多个对象试图访问这段代码,而我也不想使用静态锁定对象。

请帮我。

最佳答案

锁定即可完成工作,但是您锁定了一个实例字段,它将仅对同一实例保护关键部分。如果要锁定所有实例,请将标志(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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com