C# 多线程操作同一个文件,如何避免冲突
1 使用lock
经测试,依然存在线程冲突
private static object locker = new object();
……
lock (locker)
{
string bText = File.ReadAllText(FPath);
return bText;
}
……
lock (locker)
{
File.WriteAllText(FPath, aContent);
}
2 使用ReaderWriterLockSlim
经测试,依然存在线程冲突
private static ReaderWriterLockSlim FSlim = new ReaderWriterLockSlim();
……
FSlim.EnterReadLock();
string bText = File.ReadAllText(FPath);
FSlim.ExitReadLock();
return bText;
……
FSlim.EnterWriteLock();
File.WriteAllText(FPath, aContent);
FSlim.ExitWriteLock();