c# - 无序无重复的线程安全集合

标签 c# .net collections concurrency thread-safety

我需要一个线程安全的集合来保存没有重复项的项目。 ConcurrentBag<T>允许非唯一项目和 HashSet<T>不是线程安全的。 .NET Framework 4.5 中有这样的集合吗?

最佳答案

我建议您使用 ConcurrentDictionary 并为每个条目使用虚拟值。这在效率方面很烦人(具有所有这些虚拟值),但我怀疑在大多数应用程序中这是微不足道的。

您可能希望将其包装在您自己的 ConcurrentSet 实现中,这足以满足您的目的,这样您就不需要在大部分代码中看到抽象泄漏。

关于c# - 无序无重复的线程安全集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12585531/

相关文章:

c# - C#中的函数Socket.Select()在linux操作系统中使用epoll吗?

java - 在 Java 8 中用另一个列表过滤对象列表的列表

c# - 设置列唯一 null 而不是 .NET EF Core 中的索引

c# - 如何向图像添加自定义 EXIF 标签

.net - 在 .net 网络应用程序中发布 rdlc 文件?

c# - 使用 Lambda 和委托(delegate)进行重构

java - 如何在事件处理程序和回调中处理版本化对象

c# - UWP 等待用户与 ContentDialog 交互

java - 有人可以向我解释一下 hashmap get(key) 方法的代码吗?

java - 什么 Java 数据结构/解决方案最适合这些要求?