我需要一个线程安全的集合来保存没有重复项的项目。 ConcurrentBag<T>
允许非唯一项目和 HashSet<T>
不是线程安全的。 .NET Framework 4.5 中有这样的集合吗?
最佳答案
我建议您使用 ConcurrentDictionary
并为每个条目使用虚拟值。这在效率方面很烦人(具有所有这些虚拟值),但我怀疑在大多数应用程序中这是微不足道的。
您可能希望将其包装在您自己的 ConcurrentSet
实现中,这足以满足您的目的,这样您就不需要在大部分代码中看到抽象泄漏。
关于c# - 无序无重复的线程安全集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12585531/