我正在使用StreamReader
来读取/写入两个线程中的文件,读入一个并写入其他线程。我希望这两个不会同时发生。我应该使用什么锁?我查看了一些示例,但他们使用的是FileStream.Lock
,我不确定是否可以将其与StreamReader
一起使用,所以请澄清。
答案 0 :(得分:1)
答案 1 :(得分:1)
除了锁定文件本身外,还可以使用“lock”关键字。否则,在尝试使用锁定文件时会抛出异常
private object lockObject = new Object();
// Code in thread that reads
lock(lockObject)
{
// Open the file and do something
// Be sure to close it when done.
}
// Somewhere else in another thread
lock(lockObject)
{
// Open the file for writing and do somethign with it
// Be sure to close it when done.
}
答案 2 :(得分:0)
您可以创建自己的锁:
class Example
{
private static readonly object SyncRoot = new object();
void ReadOrWrite()
{
lock(SyncRoot)
{
// Perform a read or write
}
}
}