2012-09-05 75 views
0

我有一個屬性的QueueItem對象。我需要在ConcurrentBag列表中找到它並更改它的值。怎麼做?ConcurrentBag如何更改對象屬性

QueueItemList = new ConcurrentBag<QueueItem>() 

我可以使用LINQ查詢對象在ConcurrentBag這樣

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

但是這是線程安全的?

+0

「線程安全」是什麼意思?你設想的哪些場景可能會導致問題,並且你的物品在線程安全方面有什麼內容? –

+0

QueueItem對象沒有任何線程安全鎖定,我需要創建QueueItem對象的隊列列表,並且兩者都必須是線程安全的。 – Tomas

回答

1

Where操作或任何其他集合操作都是線程安全的,例如,如果它不是線程安全的,則在Where操作中如果有人在同一時間更改其他線程中的項目計數,但是更改Status屬性與集合無關,並且不是線程安全的。