gpt4 book ai didi

c# - File.ReadAllLines() 紧接着 File.WriteAllLines() 由于锁定导致异常

转载 作者:行者123 更新时间:2023-11-30 18:23:47 32 4
gpt4 key购买 nike

在我的程序中,我有一段代码可以做到

var lines = File.ReadAllLines(myFileName);

if (lines[0] != null)
{
//does a few things
File.WriteAllLines(myFileName, lines);
}

虽然这在一开始工作得很好,但最近它给了我一个异常(exception),因为文件被另一个进程使用大约 90% 的时间。这对我来说已经毫无意义,因为 File.ReadAllLines() 应该在阅读后关闭文件。我在 File.WriteAllLines() 之前添加了 System.Threading.Thread.Sleep(3000),这使我的成功率提高了约 50%。休眠和祈祷真的是我唯一的选择吗?我找不到任何来源,人们对 File.ReadAllLines() 有类似的问题。

任何建议、解释或实际修复都会有所帮助。我忍不住觉得我错过了什么。

编辑:用实际代码编辑我的 if 语句,以防万一

编辑:我正在将文件读写到网络共享,而不是我的本地机器。

编辑:它似乎不是我的应用程序的任何类型的挂起版本,并且我可以通过使用 this 中的 FileUtil 类来判断。问题,是我的应用锁定了文件。

最佳答案

我已经弄清楚问题出在哪里了。在达到此代码之前,有一些较旧的“遗留”代码出于现在已过时的原因快速读取文件。我们拥有的许多遗留代码对流的使用非常草率,我最近一直在回过头来清理它并在未使用的地方实现正确的 using() 语法。显然我错过了一个地方,并且有一个从未被处理过的旧 StreamReader。感谢大家的评论,在这个过程中学到了一些东西。

关于c# - File.ReadAllLines() 紧接着 File.WriteAllLines() 由于锁定导致异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31950107/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com