C#学习教程:File.ReadAllLines()紧跟在File.WriteAllLines()后会因锁死而异常程序我有一大堆代码varlines=File.ReadAllLines(myFileName);if(lines[0]!=null){//做一些事情File.WriteAllLines(myFileName,lines);虽然这起初工作正常,但最近它给了我一个例外,因为该文件被另一个进程使用~90%的时间。这对我来说没有意义,因为File.ReadAllLines()应该在阅读后关闭文件。我在File.WriteAllLines()之前添加了System.Threading.Thread.Sleep(3000),这使我的成功率达到了~50%。这真的是我唯一的选择吗?我找不到人们对File.ReadAllLines()有类似问题的任何来源。任何建议、解释或实际修复都会有所帮助。我忍不住觉得我错过了什么。编辑:用实际代码编辑我的if语句,这很重要编辑:我正在读取和写入文件到网络共享,而不是我的本地计算机。编辑:我的应用程序似乎没有持有任何类型的文件的待处理版本,从我在这个问题中使用FileUtil类可以看出,这是我的应用程序锁定了文件。我已经弄清楚问题出在哪里了。在这段代码到来之前,有一些较旧的“遗留”代码可以快速读取文件,因为它现在已经过时了。我们有很多遗留代码非常粗心地使用流,我最近回去清理它并在没有使用它的地方实现了正确的using()语法。显然我在某个地方丢失了并且有一个从未被处理过的旧StreamReader。感谢大家的评论,一路上学到了一些东西。以上是C#学习教程:File.ReadAllLines()紧跟在File.WriteAllLines()之后会因为加锁而异常。如果对大家有用,需要进一步了解C#学习教程,希望大家多多分享注意——本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
