title: thread-safe file reads and writes: use a filename/lock dictionary, or just catch IOExceptions?
body: <p>I have a few processes that periodically append lines to files, and a few that periodically read these files. These files aren't huge, and the appends are frequent but small.</p>
  
  <p>I can just catch IOExceptions in a looped delay counter, or I could use a static ConcurrentDictionary&lt;string, ReaderWriterLockSlim&gt; to prevent contentions from happening at all.</p>
  
  <p>Catching exceptions is the most straitforward, but I'm worried about eventually reading an incomplete write. Is using a lock dictionary safer, or unnecessary?</p>