小编Con*_*nor的帖子

以线程安全的方式添加到Parallel.ForEach循环中的列表

我在一个名为ListofObjects的obj对象列表中有一些像这样工作的代码:

List<SomeObject> NewListofObjects<SomeObject>();

Parallel.ForEach(ListofObjects, obj =>

//Do some operations here on obj to get a newobj

NewListofObjects.Add(newobj);

);
Run Code Online (Sandbox Code Playgroud)

现在我不在Parallel.ForEach循环中,我想对NewListofObjects进行操作.但是,当我尝试:"尝试读取或写入受保护的内存时,我收到此错误.这通常表明其他内存已损坏".

这是因为我的NewListofObjects.Add(newobj)方法不是线程安全的吗?如果是这样,我怎样才能使它成为线程安全的?

c# multithreading

14
推荐指数
2
解决办法
2万
查看次数

标签 统计

c# ×1

multithreading ×1