title: Read/Remove items from dictionary in multi threaded environment
body: <p>I have the following object:</p>
  
  <pre><code>Dictionary&lt;string, List&lt;SubmitSm&gt;&gt; smDic
  </code></pre>
  
  <p>which is a global variable. </p>
  
  <p>What is the impact/implications of reading items from smDic into a local object for that thread and then remove the copied items from smDic while other threads are performing the same action? Each thread reading and removing items can only read items with a specific dictionary key(it is a one to one relationship)</p>