释放StreamReader文件一秒钟

时间:2011-04-19 14:08:13

标签: c# streamreader

我有一个streamReader,用于继续观看添加的任何新行的文件, 它是这样的:

while (true)
{
  try
  {
    line = sr.ReadLine();
    if (line == null)
    {
      break;
    }
    if (!string.IsNullOrWhiteSpace(line))
    {
      //Do Stuff
    }
    Thread.Sleep(2);
  }
}

现在我想暂时释放文件一段时间,

我可以关闭sr一两秒然后重新使用它并再次使用它但我想知道是否有适当的方法这样做..

2 个答案:

答案 0 :(得分:2)

使用FileSystemWatcher跟踪文件的更改,然后打开文件以检查新行。

您可以使用最后seek位置开始新的搜索,因此不需要重新读取整个文件。

答案 1 :(得分:0)

  

这样做的正确方法?

重新开始,寻找()到旧职位并继续工作应该是你最好的选择。如果您希望其他方能够继续访问该文件,请指定正确的flags for FileShare,例如FileShare.ReadWrite

或许查看.NET 4.0的内存映射文件