问题标签 [syncroot]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
.net - 为什么要锁定 Collection.SyncRoot 而不是锁定集合?
我试图了解 ICollection 中同步根的意义。为什么不直接锁定收藏?
对比
c# - SyncRoot 对象真的是线程安全的吗?
我是 SyncRoot 概念的新手。据我所知,用于锁定的对象应该是私有的。
但是HashTable
有一个公共属性 ,SyncRoot
它只是私有 SyncRoot 对象的包装器。建议您HashTable.SyncRoot
在枚举集合时锁定。
看起来我们可能会因为死锁而失败,因为它不再是私有的。它真的是线程安全的吗?
如果我制作自己的私有锁定机制怎么办?
private readonly object _syncObject;
哪个更好,为什么?
powershell - Powershell 中的 SyncRoot 属性
这个问题与以下博客中的函数 forward_dns 有关:http: //powershellmasters.blogspot.com/2009/04/nslookup-and-powershell.html
因此,假设我在 powershell 中有一段代码,如下所示:
此代码段使用 nslookup DOS 命令进行 DNS 查找。由于它是一个 DOS 命令,Invoke-Expression 返回的对象基本上是一个字符串数组,每一行输出一个字符串。
在示例函数中,为了检索输出的第 4 行,原作者使用以下语法:
我发现这也很好用:
在这种情况下 SyncRoot 的目的是什么?
c# - 锁定字典对象的正确方法
在我的代码中,我有一个静态字典对象
这是抛出这个错误
我搜索并发现这是因为多个线程尝试访问字典,但我确实有lock
字典
然后我进行了更多搜索,发现锁定字典并不能阻止对它的所有操作,所以我应该像这样使用它lock
的SyncRoot
对象来实现我想要的
但后来我搜索到使用SyncRoot
不是一个好习惯
在进一步搜索中,我发现有一个ConcurrentDictionary
用于此目的
- 那么任何人都可以建议我锁定字典的最佳方法吗
- 如果我使用
ConcurrentDictionary
它,我仍然需要使用lock
它还是它会自己处理所有事情。 - 如果我必须使用 lock on
ConcurrentDictionary
,我必须lock
直接使用它或再次我必须SyncRoot
为它锁定对象
提前致谢!
c# - 为什么这个例子中的队列锁是必要的
我有下面显示的示例。我不知道为什么队列SyncRoot也有锁定,而这两种连贯算法都使用同一个对象完全锁定。
据说队列锁是必须的。
锁定队列的原因是什么SyncRoot
,即lock(workQueue.SyncRoot )
?