gpt4 book ai didi

c# - 锁定非静态方法

转载 作者:行者123 更新时间:2023-11-30 12:38:08 24 4
gpt4 key购买 nike

我可以在非静态方法中使用 lock 对象吗?另一方面,这段代码是线程安全的吗?

static readonly object _object = new object();  
public void Get()
{
lock (_object)
{
...
}
}

最佳答案

在非静态方法中锁定静态对象是可以的。静态对象只是意味着该类型的所有实例都有一个单个锁。

如果您使用类级字段,您的类型的每个实例都有一个锁。

您选择哪一个取决于您要防止并发访问的资源。例如,如果您有一个静态资源(比如一个集合),那么保护该资源的锁也必须是静态的。

关于c# - 锁定非静态方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55676266/

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