多线程在内存中访问大型字典对象 - 瓶颈?

Mar*_*909 4 c# multithreading

快速多线程问题......

我在内存中有一个包含大约20,000个项目的字典对象.如果我有多个线程试图从这个对象读取,你会期望这会产生瓶颈吗?

NET 3.5.字典对象是只读的

字典是ReadOnly所以我不关心读/写,只关注性能.

Dar*_*rov 5

它不会产生瓶颈,但字典不是线程安全的,因此您可能无法获得预期的结果.在.NET 4.0中,您可以将其ConcurrentDictionary<TKey, TValue>用于此目的.

如果它是一个只读字典,那么拥有并发读者可能是安全的,只需确保用静态构造函数中的数据填充此字典,以确保写入不会干扰读取,并且它会在任何线程尝试读取之前发生.