如果我使用ConcurrentBag
(处理一个作者和多个读者的场景)而不是在列表<>上使用ReaderWriterLockSlim
,它是否相同??
更新1:
场景是有多个线程可以到达静态列表,有些可能需要阅读其他人可能需要写,我想要的是:
1-只允许一个线程从列表中添加\ edit \ delete,而没有其他线程试图在其上添加\ editing \ deletion。
2-如果没有添加\ edit \ deletion的线程,允许多个线程同时从中读取。
答案 0 :(得分:1)
在你的场景中,听起来你应该在列表中使用ReaderWriterLockSlim。
并发包不支持删除(根本没有),编辑不安全。 使用ReaderWriterLockSlim锁定列表将允许安全删除,并允许安全编辑,前提是编辑在写锁定范围内完成。
尽管两个构造都与同步和线程相关,但它们绝对不可互换。