title: What's the difference between a ConcurrentDictionary and an ImmutableDictionary?
body: <p>I am reading <em>Concurrency in C# Cookbook</em> and the book told me that:</p>
  
  <blockquote>
    <p><code>ConcurrentDictionary&lt;TKey, TValue&gt;</code> is best when you have multiple
    threads reading and writing to a shared collection. If the updates are
    not constant (if they’re more rare), than <code>ImmutableDictionary&lt;TKey,TValue&gt;</code> 
    may be a better choice.</p>
  </blockquote>
  
  <p>I know that Add or Remove a large immutable collection can be slow, and my question is, is there any other difference between them? Now that they are all thread safe, why is <code>ImmutableDictionary</code> a better choice when the updates are not constant?</p>