在以下代码中:
public class SomeItem { }
public class SomeItemsBag : ConcurrentBag< SomeItem > { }
public class SomeItemsList : List< SomeItem > { }
public static class Program
{
private static ConcurrentDictionary< string, SomeItemsBag > _SomeItemsBag;
private static ConcurrentDictionary< string, SomeItemsList > _SomeItemsList;
private static void GetItem(string key)
{
var bag = _SomeItemsBag[key];
var list= _SomeItemsList[key];
...
}
}
我的假设是 bag 是线程安全的,而 list 不是。这是在多线程应用程序中处理列表字典的正确方法吗?
编辑添加:只有 1 个线程将添加到包/列表中,另一个线程将删除,但许多线程可以访问。