Tag: 并发文件

我可以阻止StreamReader在使用时锁定文本文件吗?

StreamReader在读取文本文件时会锁定它。 我可以强制StreamReader以“只读”或“非锁定”模式工作吗? 我的解决方法是将文件复制到临时位置并从那里读取,但我更愿意直接使用StreamReader。 任何替代建议? 背景: 我写了一个小应用程序来从日志文件中获取一些统计信息。 该文件不断被外部程序更新(每秒几次),可以调用AAXXYY。 查看输出表明我的应用程序可能正在锁定文件并阻止AAXXYY写入。 这就是我正在做的事情 private void btnGetStats_Click(object sender, EventArgs e) { int countStarts = 0; int countEnds = 0; IList sessions = new List(); using(StreamReader stRead = new StreamReader(openFileDialog1.FileName,Encoding.Unicode)) { while(!stRead.EndOfStream) { string line = stRead.ReadLine(); if(line.Contains(“Session start”)) { countStarts++; sessions.Add(line.Substring(line.IndexOf(“[“), line.LastIndexOf(“]”) – line.IndexOf(“[“))); } if (line.Contains(“Session end”)) { countEnds++; […]