加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 多个作家,一个读者,哪个集合

发布时间:2020-12-15 18:33:20 所属栏目:百科 来源:网络整理
导读:我的情况是这样的: 多个线程必须同时写入同一个集合(add和addrange).物品的顺序不是问题. 当所有线程都完成(加入)并且我回到我的主线程上时,我需要以foreach样式快速读取所有收集的数据,因为所有线程都完成后不需要实际锁定. 在“过去的日子”中,我可能会在
我的情况是这样的:

多个线程必须同时写入同一个集合(add和addrange).物品的顺序不是问题.
当所有线程都完成(加入)并且我回到我的主线程上时,我需要以foreach样式快速读取所有收集的数据,因为所有线程都完成后不需要实际锁定.

在“过去的日子”中,我可能会在List上使用读写器锁,但是对于新的并发集合,我想知道是否有更好的选择.我只是无法弄清楚哪些并发集合似乎假设读者也在并发线程上.

解决方法

Order of items is not an issue. When all threads have completed (join) and im back on my main thread,then I need to read all the collected data

您根本没有声明对线程安全集合的要求.共享单个集合没有意义,因为您在写作的同时从未阅读过.所有写作都发生在同一个集合中并不重要,因为顺序无关紧要.也不重要因为订单无论如何都是随机的.

所以只需给每个线程自己的集合来填充,不需要锁定.然后逐个迭代它们,不需要锁定.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读