gpt4 book ai didi

c# - 使用单独的对象进行同步

转载 作者:行者123 更新时间:2023-11-30 20:03:51 27 4
gpt4 key购买 nike

我经常看到这个:

object lockObj;
List<string> myStrs;

// ...

lock(lockObj)
{
myStrs.Add("hello world");
}

为什么要有单独的对象?当然你可以这样做:

List<string> myStrs;

// ...

lock(myStrs)
{
myStrs.Add("hello world");
}

最佳答案

仅当 myStrs 是 public 时直接锁定列表是一个问题,因此也可能被其他调用者锁定,从而导致可能的死锁。

如果它是一个私有(private)成员,那么应该没有问题,但是在任何情况下锁定一个单独的对象是一个好习惯。

请参阅此类似问题以获得更详细的答案: Why is lock(this) {...} bad?

关于c# - 使用单独的对象进行同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14070431/

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