2011-04-12 25 views

回答

15

一般而言,Contains操作在并发收集中不是很有用。问题在于,只要您确定集合“包含”或不包含某个对象,您作为该检查结果所执行的逻辑就不再有效,因为另一个线程可能已经立即添加或删除该项目。

ConcurrentDictionary类包含此方法来实现IDictionary,但预期的用法实际上是使用AddOrUpdate,GetOrAdd和类似的原子方法。

+0

+1为省略背后的逻辑简洁描述 – spender 2011-04-12 01:48:59

+0

+1本文及其后续帮助我更好地理解了这些问题:http://blogs.msdn.com/b/jaredpar/archive/2009/02/ 11 /为什么是线程安全集合so-hard.aspx – 2011-04-12 02:11:11

+0

非常感谢。这解释了我的疑惑。 – CuiPengFei 2011-04-12 05:08:56

相关问题