在concurrentbag + c#中修改项

本文关键字:修改 concurrentbag | 更新日期: 2023-09-27 17:54:02

我在并发包中保存了一个对象集合。根据接收到的输入,我想修改这些对象。如何做到这一点?我不能使用trytake,因为它正在删除项目。我不确定trypeek是否会遍历集合。当然,将项复制到数组中是行不通的,因为这样对象就只能读了。请帮助

在concurrentbag + c#中修改项

你不能就地修改条目,你必须把它们取出来,修改它们,然后再放回去。

我认为你必须滚动你自己的线程保存集合。TryPeek返回一个项目,但不能保证没有其他线程修改它。

也没有线程安全的迭代。

请看这里:http://www.codethinked.com/net-40-and-system_collections_concurrent_concurrentbag

hth

马里奥