我有一个属性的QueueItem对象。我需要在ConcurrentBag列表中找到它并更改它的值。怎么做?
QueueItemList = new ConcurrentBag<QueueItem>()
我可以使用linq来查询ConcurrentBag中的对象,如下所示
MyItem = QueueItemList.Where(match);
MyItem.Status = changeThis;
但这个线程安全吗?
答案 0 :(得分:1)
Where
操作或任何其他集合操作是线程安全的,例如,如果它不是线程安全的,那么Where
操作中可能存在错误,如果有人在其他线程中更改了项目数在同一时间,但更改Status
属性与集合无关,并且它不是线程安全的。