我以前是一名C ++开发人员,我在线程同步上阅读了C#文档,但有一点我不清楚。
该类创建一个专门用于关键部分的锁定对象:
private System.Object lockThis = new System.Object();
为什么他们不能锁定现有对象呢?例如,让我们说我有一个名为" Players"其中包含通过单件设计模式从多个线程访问的播放器列表。它有"添加"和"删除"方法
我可以简单地锁定此对象,而不是创建一个专门用于锁定的新对象吗?如果我不能为什么不呢?
我还没有在文档中发现任何关于此的内容,因为它似乎使代码看起来更干净。
即,一些伪代码:
lock (Players)
{
Players.Add(...);
...
Players.Remove(...);
}
编辑:这是不好的做法,气馁等等?这就是为什么在任何地方都没有提到它?