2014-01-07 65 views
0

我想使用多線程將新元素添加到列表中。C#多線程添加到列表

我知道這不是一個好主意,我只是在尋找像這樣的東西。

我只需要添加新的,沒有改變任何存在的元素。

+2

見'System.Collections.Concurrent'命名空間。你可以找到有用的東西。 –

+1

你爲什麼認爲這是一個壞主意?互聯網上有很多例子。如果您遇到特定問題,請顯示您的代碼以及發生了什麼。 –

回答

1

List不適用於同時從多個線程訪問。您不能有多個線程同時添加項目。試圖這樣做可能會導致整個列表被破壞,這可能會導致異常,跳過項目,您從未添加的新數據或其他類型的未定義行爲。

考慮使用從System.Collections.Concurrent命名空間中的數據結構,如BlockingCollectionConcurrentQueueConcurrentBag如果你想將生成的對象添加到從多個線程同時集合。