这是我的日志写入功能:
public static void WriteLog(string source, string message)
{
string logFilePath = @"C:\LogFile\log.txt";
using (StreamWriter sw = new StreamWriter(logFilePath, true))
{
sw.Write(source + ": :" + message);
}
}
但是这段代码有时会导致我出现错误:
该进程无法访问该文件,因为它正被另一个进程使用
所以我修改了我的代码,这是我的新代码:
public static void WriteLog(string source, string message)
{
object _lock = new object();
lock (_lock)
{
string logFilePath = @"C:\LogFile\log.txt";
using (StreamWriter sw = new StreamWriter(logFilePath, true))
{
sw.Write(source + ": :" + message);
}
}
}
虽然使用此代码后我没有收到错误消息。但是我仍然只是想知道这是否是使用锁来防止由于死锁引起的此类错误的正确方法,以及我使用锁的方式是否正确。