作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
MSDN指出对 .NET Dictionary<K,V>
的变异访问类型不是线程安全的。有标准的线程安全版本吗?
注意:“不,没有”如果为真,则为有效答案。在那种情况下(而且看起来是这样)我会去做锁定的事情。
What’s the best way of implementing a thread-safe Dictionary in .NET? (不准确,因为我想要一个标准类型,而不是我自己实现的东西)
最佳答案
没有。考虑这段代码,其中每个方法/属性都是线程安全的
if (!SFdict.Contains(key))
{
SFdict[key] = value;
}
虽然每个 Action 都可以是线程安全的,但代码块有一个竞争条件,b/c 有两个方法调用和两个不同的临界区。唯一的办法就是手工
lock(lck)
{
if (!dict.Contains(key))
{
dict[key] = value;
}
}
关于.net - 标准线程安全的 .Net 字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/842130/
我是一名优秀的程序员,十分优秀!