本文介绍了如何在对象内部使列表线程安全的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

据我所知,一般来说List不是线程安全的。在我的情况下,我有一个列表,我正在遍历一个特定的对象,其中包含一个列表。如何使该列表线程安全。



I understand that in general a List is not thread safe. In my case I have a list on which I am traversing a specific object which contains a list inside it. How can I make that list thread safe.

lstToReturn = new list<item2>();

Parallel.ForEach(lstFromDb, variable=>
{
Item2 t = new Item2();
//Do some operation
lstOfItem2 = Get list from database related to variable
t.anotherList = lstOfItem2.Select(c => c.Id);

lock(lstToReturn)
{
    lstToReturn.add(t)
}
}





在这里,我没有一直得到anotherList。

这是跳过价值的一段时间。



如何解决这个问题?

请注意数据很大所以我必须采取并行行为。<



Here I am not getting "anotherList" right all time.
It is some time skipping values.

How can I solve this problem?
Please note data is large so I have to go for parallel behavior.<

推荐答案


这篇关于如何在对象内部使列表线程安全的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-02 20:09