これが私のログ書き込み機能です:
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);
}
}
}
このコードを使用した後、エラーは発生していませんが。しかし、それでも私は、これがデッドロックによるそのようなエラーを防ぐためにロックを使用する正しい方法であるかどうか、そして私がロックを使用した方法が正しいかどうかを知りたいと思っていました。