File being used by another process. Reason, and solution?
<blockquote>
  <p>The process cannot access the file
  'abc.log' because it is being used by
  another process.</p>
</blockquote>

<p>Hi, I've seen this exception from my application occationaly but I am still trying to fix that, hope I will get some insight from stackoverflow.</p>

<p>In my application I've have defined a WriteToLog function which will write to a log file.
Also the mainForm of  my application will launch a backgroundWorker do some job which also calls the WriteToLog. Maybe two threads access a file will cause a problem? But in my code
I 've already do my best to write flush and close the text file (I think), and here is my code from WriteToLog:</p>

<pre><code> StreamWriter sw = null;
 string newText = "";
 try
 {
     //populate the content for newText
     sw = File.AppendText(LOG_FILE);
     sw.Write(newText);
     sw.Flush();
     sw.Close();
 }
 catch (IOException ex)
 {
     MessageBox.Show("Failed to write to log!\n\t" + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
 }
 finally
 {
     if (sw != null)
     {
         sw.Close();
     }
 }
</code></pre>

<p>I think as long as I flush and close the streamWriter, I should be able call the WriteToLog multi-times and in multi-threads isn't it? Or if I am wrong, could I simple make the file open shared, or there are other reason/solutions?</p>
