0

我有一个具有一个属性的 QueueItem 对象。我需要在 ConcurrentBag 列表中找到它并更改它的值。怎么做?

QueueItemList = new ConcurrentBag<QueueItem>()

我可以像这样使用 linq 在 ConcurrentBag 中查询对象

MyItem =  QueueItemList.Where(match);
MyItem.Status = changeThis;

但是这个线程安全吗?

4

1 回答 1

1

Where操作或任何其他收集操作是线程安全的,例如,如果它不是线程安全的,则Where如果有人同时更改其他线程中的项目计数,则操作可能会出错,但更改Status属性与集合,它不是线程安全的。

于 2012-09-05T13:06:46.457 回答