Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#多线程添加到列表_C#_Multithreading - Fatal编程技术网

C#多线程添加到列表

C#多线程添加到列表,c#,multithreading,C#,Multithreading,我想使用多线程将新元素添加到列表中 我知道这不是个好主意,我只是在找这样的东西 我只需要添加新的、不更改任何现有元素。列表不允许同时从多个线程访问。不能有多个线程同时添加项目。尝试这样做可能会导致整个列表损坏,从而导致异常、跳过项、从未添加的新数据或其他类型的未定义行为 考虑使用System.Collections.Concurrent命名空间中的数据结构,例如,如果要同时从多个线程生成要添加到集合的对象,请使用带有ConcurrentQueue或ConcurrentBag的BlockingCo

我想使用多线程将新元素添加到列表中

我知道这不是个好主意,我只是在找这样的东西


我只需要添加新的、不更改任何现有元素。

列表
不允许同时从多个线程访问。不能有多个线程同时添加项目。尝试这样做可能会导致整个列表损坏,从而导致异常、跳过项、从未添加的新数据或其他类型的未定义行为


考虑使用
System.Collections.Concurrent
命名空间中的数据结构,例如,如果要同时从多个线程生成要添加到集合的对象,请使用带有
ConcurrentQueue
ConcurrentBag
BlockingCollection

您需要使用线程安全集合来执行此操作。查看
ConcurrentQueue
ConcurrentBag
BlockingCollection
(针对产品消费者)


请参阅
系统.Collections.Concurrent
命名空间。你可以找到一些有用的东西。为什么你认为这是个坏主意?互联网上有很多例子。如果您有特定的问题,请显示您的代码和发生的情况。