title: Threading issue: Double Lists - introducing cross reference
body: <p>I have 2 Lists of differnt objects used in different contexts.  Each list is accessed by multiple threads which can add, remove and change state of objects in list.  Both lists are protected from multiple access by locking on the list. Thats seems fine.<br>
  There is now a requirement that objects in List1 holds a reference to an object in List2 in order to READ a particular property (which gets WRITEN by different threads).<br>
  So although each list (and hence contained objects) are each protected from multiple access it is now possible for one thread to write List1 Object1.Property while another thread is reading it via List2 Object2.Object1.Property.<br>
  Is this situation thead safe?  (I don't think it is but am not 100% sure).<br>
  <strong>If not safe - what is best way to make it safe?</strong></p>