title: What kind of synchronization does this code need?
body: <p>I have a threaded server application that stores <code>List&lt;Item&gt; dataList</code>. There is a single writing thread that modifies, adds and removes items from the list, and multiple threads that read from this list.</p>
  
  <p>What kind of synchronization is required to ensure the writes happen in order as they were called and provide maximum performance for the reads i.e. if a write is busy reads must just provide the previous value before the read.</p>
  
  <p>I currently use <code>ReaderWriterLockSlim</code> for it's separate Read and Write locking capabilities, but it feels as though there is a lot of expensive overhead calling the ReadLocks that is unnecessary since all I want is for writes to be guaranteed in order?</p>
  
  <p>As far as I understand reading reference types and value types should provide atomic access so locking is perhaps not necessary?</p>
  
  <p>Performance is a big concern and it seems like optimization of my synchronization structure could improve by quite a bit.</p>