C# 执行维护工作(例如删除条目)时不锁定大型集合的模式?

C# 执行维护工作(例如删除条目)时不锁定大型集合的模式?,c#,.net,collections,concurrency,C#,.net,Collections,Concurrency,我经常遇到的一个问题是,如何有效地让编写器使用集合(主要是添加到集合中),同时让维护逻辑不锁定集合或减慢编写器的速度。是否有任何模式可以有效地实现这一点,或者使用并发集合是唯一的方法?一个想法是使用分段列表,一个由两个内部段(list)备份的列表。要从集合中读取值,您应该查看两个段,因此会有读取开销。要从集合中删除旧条目,只需将旧段替换为新的空段(旧段将被回收) 如果你不经常阅读收藏,这个想法可能是可行的。一个想法是使用分段列表,一个由两个内部段(list)备份的列表。要从集合中读取值,您应该查

我经常遇到的一个问题是,如何有效地让编写器使用集合(主要是添加到集合中),同时让维护逻辑不锁定集合或减慢编写器的速度。是否有任何模式可以有效地实现这一点,或者使用并发集合是唯一的方法?

一个想法是使用分段列表,一个由两个内部段(
list
)备份的列表。要从集合中读取值,您应该查看两个段,因此会有读取开销。要从集合中删除旧条目,只需将旧段替换为新的空段(旧段将被回收)


如果你不经常阅读收藏,这个想法可能是可行的。

一个想法是使用分段列表,一个由两个内部段(
list
)备份的列表。要从集合中读取值,您应该查看两个段,因此会有读取开销。要从集合中删除旧条目,只需将旧段替换为新的空段(旧段将被回收)


如果你不经常阅读藏品,这个想法可能是可行的。

你想要什么样的藏品<代码>列表<代码>词典?维护工作也有模式吗?例如,旧条目被删除?列表,您猜维护工作正是从列表中删除旧条目的工作。您想要什么样的集合<代码>列表<代码>词典?维护工作也有模式吗?例如,删除列表中的旧条目,您可以猜到维护工作就是从列表中删除旧条目