C#多线程添加到列表
我想使用多线程将新元素添加到列表中 我知道这不是个好主意,我只是在找这样的东西C#多线程添加到列表,c#,multithreading,C#,Multithreading,我想使用多线程将新元素添加到列表中 我知道这不是个好主意,我只是在找这样的东西 我只需要添加新的、不更改任何现有元素。列表不允许同时从多个线程访问。不能有多个线程同时添加项目。尝试这样做可能会导致整个列表损坏,从而导致异常、跳过项、从未添加的新数据或其他类型的未定义行为 考虑使用System.Collections.Concurrent命名空间中的数据结构,例如,如果要同时从多个线程生成要添加到集合的对象,请使用带有ConcurrentQueue或ConcurrentBag的BlockingCo
我只需要添加新的、不更改任何现有元素。
列表
不允许同时从多个线程访问。不能有多个线程同时添加项目。尝试这样做可能会导致整个列表损坏,从而导致异常、跳过项、从未添加的新数据或其他类型的未定义行为
考虑使用
System.Collections.Concurrent
命名空间中的数据结构,例如,如果要同时从多个线程生成要添加到集合的对象,请使用带有ConcurrentQueue
或ConcurrentBag
的BlockingCollection
。您需要使用线程安全集合来执行此操作。查看ConcurrentQueue
或ConcurrentBag
或BlockingCollection
(针对产品消费者)
请参阅
系统.Collections.Concurrent
命名空间。你可以找到一些有用的东西。为什么你认为这是个坏主意?互联网上有很多例子。如果您有特定的问题,请显示您的代码和发生的情况。