什么线程安全的集合适合这种情况?

时间:2011-10-25 20:56:08

标签: .net collections thread-safety

我有一个单例类处理来自不同线程中运行的不同客户端的订阅和取消订阅请求。单身人士包含一组订阅者。在添加或删除之前,该类需要验证该元素是否尚未添加或删除。

通常我会在每次操作之前使用List或HashSet调用Contains来实现它,但是如果我想使用System.Collections.Concurrent命名空间中的一个新类,我看到的唯一选择是使用ConcurrentDictionary带有虚拟值。

这是我最好的选择还是有些东西我可以忽略?顺便说一句,性能并不是一个值得考虑的因素。

2 个答案:

答案 0 :(得分:0)

我认为你应该坚持使用ConcurrentDictionary ......

答案 1 :(得分:0)

为什么不使用Blocking Queue支持的ConcurrentDictionary。 BlockingQueue似乎适合您的生产者/消费者计划,而ConcurrentDictionary适合您的查找。