c#文件读/写锁

时间:2012-01-05 17:48:17

标签: c# multithreading mutex streamreader

我正在使用StreamReader来读取/写入两个线程中的文件,读入一个并写入其他线程。我希望这两个不会同时发生。我应该使用什么锁?我查看了一些示例,但他们使用的是FileStream.Lock,我不确定是否可以将其与StreamReader一起使用,所以请澄清。

3 个答案:

答案 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
        }
    }
}