如何访问ConcurrentDictionary以及如何序列化它?

时间:2011-09-21 22:02:25

标签: c# c#-4.0 collections

我之前从未使用过ConcurrentDictionary对象,并且对它有几个问题:

  1. 我是否正确多个线程可以同时从字典中读取,但如果正在写入,其他任何线程都无法访问它?

  2. 此对象可以序列化为磁盘吗?

  3. 感谢。

2 个答案:

答案 0 :(得分:13)

  

我是否正确多个线程可以同时从字典中读取,但是如果正在写入,则没有其他线程可以访问它?

不,您可以安全地从多个线程读取和写入。当然在内部我认为有一些同步发生但性能损失应该很小,你不应该担心它并进行任何额外的同步。

  

此对象可以序列化为磁盘吗?

取决于您使用的序列化程序。

答案 1 :(得分:3)

  
      
  1. 我是否正确多个线程可以同时从字典中读取,但如果正在写入,其他任何线程都无法访问它?
  2.   

这是不可观察的,您可以从多个线程读取写入,并让该类担心同步。

  
      
  1. 此对象可以序列化为磁盘吗?
  2.   

是的,它标有[Serializable]。并且您始终可以提取<K,V>对并使用您喜欢的任何序列化程序。