C#多线程
答
它完全取决于收集; ICollection<T>
只是一个界面。
我知道的每个集合只是返回一个Int32
字段,它的Count
获取器,所以它通常是原子的。
但是,从来没有保证计数在您获取属性后不会改变。
答
不,因为你只能对实现做出这个假设,而不是接口。
答
原子只会使意义实施和不是接口。你可以有两个实现:一个线程安全的非线程安全实现。
List<T>
由于不使用InterLocked
,所以不是线程安全的。
如何使用'Interlocked'使'Count'实现''列表'线程安全? 'Count'属性只是返回一个'int'字段,它是一个原子读取。当然,计数返回给调用者的时候总是有可能已经陈旧,但是如果使用了“互锁”的话,这种可能性就很大。 –
LukeH
2011-03-31 13:50:56