title: Will using multiple threads speed up my HTML file processing application?
body: <p>I just finished up my most complex and feature-laden <strong>WinForms</strong> application to date. It loads a list any number of HTML files, then loads the content of one, uses some RegEx to match some tags and remove or replace them (yes, yes, I've seen <a href="https://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454">this</a>. It works just fine, thanks Cthulu), then writes it to disk. </p>
  
  <p>However, I noticed that ~200 files takes roughly 30 seconds to process, and after the first 5-10 seconds the program is reported as "Not Responding". I'm assuming it's not wise to do something like <a href="https://stackoverflow.com/questions/1740099/reading-multiple-files-in-multiple-threads-using-c-slow">this guy did</a>, as the hard drive is a bottleneck. </p>
  
  <p>Perhaps it'd be possible to load as many as possible into memory, then process each one with a thread, write those, then load some more into memory? </p>
  
  <p>At the very least, would creating a worker thread separate from the UI thread prevent the "Not Responding" issue? (<a href="http://msdn.microsoft.com/en-us/magazine/cc300429.aspx" rel="nofollow noreferrer">This MSDN article covers what I was considering.</a>)</p>
  
  <p>I guess I'm asking if multithreading will offer any sort of speed improvement, and if so, what would be the best way of going about it?</p>
  
  <p>Any help or advice is much appreciated!</p>