另一个进程正在使用 StreamWriter 文件 - 写入速度太快?

StreamWriter file in use by another process - Writing to fast too frequently?

我在使用 StreamWriter 时收到一个错误,指出该文件正在被另一个进程使用,但我相信这可能取决于我写入文件的速度,或者更具体地说,是文件的速度 opened/closed.

代码如下:

    public static void writeLog(string msg)
    {
        StreamWriter log;
        string currentMonth = DateTime.Now.ToString("MMM");
        string currentYear = DateTime.Now.ToString("yyyy");
        string directoryName = currentMonth + "-" + currentYear;

        if (!Directory.Exists(@"C:\AutoSkill\LogFiles\" + directoryName + @"\"))
        {
            Directory.CreateDirectory(@"C:\AutoSkill\LogFiles\" + directoryName + @"\");
        }

        DateTime dt = DateTime.Now;
        string date = dt.ToString("dd-MM-yy");

        if (!File.Exists(@"C:\AutoSkill\LogFiles\" + directoryName + @"\" + date + ".txt"))
        {
            log = new StreamWriter(@"C:\AutoSkill\LogFiles\" + directoryName + @"\" + date + ".txt");
        }
        else
        {
            log = File.AppendText(@"C:\AutoSkill\LogFiles\" + directoryName + @"\" + date + ".txt");
        }

        try
        {
            log.WriteLine(msg);
        }
        catch (Exception err)
        {
            Console.WriteLine("There was an error writing to the log file.");
            Console.WriteLine(err.Message);
        }
        log.Close();
    }

所以我每次写完日志都会关闭它,但我会把控制台屏幕上的所有输出写到文件中,以跟踪实际发生的事情;有时,如果执行的操作很快或刚返回 null,则这些行之间的间隔只有几毫秒。

我收到这个错误是因为写入文件的速度吗?有没有更好的方法来处理写入日志文件?

无视这个,我傻

过去 2 年我没有遇到过这个问题,我收到错误是因为我从不同的线程写入同一个文件,这是重叠的地方。

文件实际上正在被另一个进程使用,同一个进程只是不同的线程。