title: Multiple threads accessing a single object but without data contention in C#
body: <p>Is it ok to have a single object be accessed by two threads that modify different data-fields within that object. (There is no contention between the two threads as they operate on different data-fields of the same object). </p>
  
  <p>But, since both of these threads will be accessing the same object (though modifying different data-fields of the same object), is there a possibility of corruption of object's state? </p>
  
  <p>Is it <strong>always</strong> recommended to ensure mutually exclusive access to an object by multiple threads? Or is it ok to allow multiple threads to access the same object without any synchronization if they operate on different data-fields? </p>
  
  <p>For example:
  <code>class Foo
      {
          private Dictionary&lt;string,ObjectA&gt; map1;
          private Dictionary&lt;string,ObjectB&gt; map2;
      }</code></p>
  
  <p>Is it ok to have one thread modify objects of type ObjectA stored in map1 while another thread modifies objects of type ObjectB stored in map2? </p>