专用线程锁定对象的命名约定
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引文回答。 4年前关闭。 这是一个相对较小的问题,但我无法找到官方文档,甚至找不到关于它的博客意见/讨论。 简而言之:当我有一个私有对象,其唯一目的是为私有服务时lock,该对象该如何命名? class MyClass { private object LockingObject = new object(); void DoSomething() { lock(LockingObject) { //do something } } } 我们LockingObject在这里应该命名什么?还不仅要考虑变量的名称,还要考虑变量在锁定时的代码外观。 我看过各种示例,但似乎没有可靠的建议: SyncRoot(和的各种变体形式_syncRoot)的用法很多。 代码示例: lock(SyncRoot),lock(_syncRoot) 这似乎受到VB的等效SyncLock语句,SyncRoot某些ICollection类上存在的属性以及某种SyncRoot设计模式的一部分的影响(这可能是一个坏主意) 在C#上下文中,不确定是否要使用VBish命名。更糟糕的是,在VB中将变量命名为与关键字相同。不知道这是否会引起混乱。 thisLock并lockThis来自MSDN文章:C#lock语句,VB SyncLock语句 代码示例: lock(thisLock),lock(lockThis) 不知道这些名称是否仅出于示例目的而最少命名 如果我们在static类/方法中使用它,那有点奇怪。 编辑:关于锁的Wikipedia文章也使用此命名作为其示例 PadLock(不同大小写的)的几种用法 代码示例: lock(PadLock),lock(padlock) 不错,但是我唯一的牛肉就是它毫无意外地调用了物理 “挂锁” 的图像,而我倾向于将其与抽象线程概念无关。 根据锁定意图命名锁定 代码示例: lock(messagesLock),lock(DictionaryLock),lock(commandQueueLock) 在VB SyncRoot MSDN页面示例中,它包含一个simpleMessageList带有私有messagesLock对象的示例 …