File.ReadAllLines() 紧随其后的 File.WriteAllLines() 由于锁定而导致异常

2023-12-03

在我的程序中,我有一段代码

var lines = File.ReadAllLines(myFileName);

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

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

任何建议、解释或实际修复都会有所帮助。我不禁觉得自己失去了一些东西。

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

编辑:我正在读取文件并将其写入网络共享,而不是我的本地计算机。

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


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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

File.ReadAllLines() 紧随其后的 File.WriteAllLines() 由于锁定而导致异常 的相关文章

随机推荐

  • 詹金斯下的git克隆/ssh

    我使用 stash 作为 git 存储库管理器 stash 使您能够为每个尝试连接和克隆的用户添加 ssh 密钥 我已经为所有 UNIX 用户配置好了 但 Windows 却给我带来了困难 Windows 从机 2008 R2 服务器 上的
  • 自定义视图矩阵的拉伸问题

    我目前正在为我的项目开发自己的二维数学库 以提高我对底层矩阵数学的理解 过去我使用过 GLM 等库 但我觉得它可能值得研究作为一种学习经验 其中大部分都很简单 我的大多数数学课程都与 OpenGL 集成并运行良好 但是我的视图矩阵似乎在窗口
  • 使用字符串访问变量

    我目前有一个 Javascript 函数 它使用字符串来引用对象名称并访问其属性 我目前正在使用 eval 来获得所需的效果 我知道这是非常非常错误的 这是我目前如何实现我想要的目标的示例 var stringToObjectRef fun
  • iPhone上取消控制播放音乐时如何设置标题?

    我正在开发一个广播应用程序 它支持在后台播放音乐 但我陷入了如何设置音乐标题以取消控制的困境 The difference between my app and Music is as following 我应该怎么做才能让我的应用程序显示
  • 使用 RSA 密钥保护许可证密钥

    已经很晚了 我很累 而且可能很沉 我编写了一个需要保护的应用程序 因此它只能在我为其生成密钥的计算机上运行 我现在正在做的是获取 BIOS 序列号并从中生成哈希值 然后使用 XML RSA 私钥对其进行加密 然后我对 XML 进行签名以确保
  • 访问自定义数据注释内的依赖属性的简单方法

    我的上有以下属性DomainRegistry model Domain Extension public string Name get set Required ErrorMessage Select extension public s
  • Java字符串-将多个空格替换为一个,然后根据空格将字符串拆分为数组[关闭]

    很难说出这里问的是什么 这个问题模棱两可 含糊不清 不完整 过于宽泛或言辞激烈 无法以目前的形式合理回答 如需帮助澄清此问题以便重新打开 访问帮助中心 假设我有一个字符串 s 2323 2323 232 3232 0 2 0 3 3232
  • 不在范围内:数据构造函数

    我写了一个程序haskell但我从 ghci 收到错误 这是源代码 我构建它 如果我有 p1 Prop p1 And Var A Not Var A 它将显示A A这就是源代码 import Data List import Data Ch
  • GMT 与本地时间转换(夏令时更改)

    我从服务器接收 GMT 时间结构 用户定义的结构 使用它我想将其转换为本地时间 我通过用接收到的结构填充 NSDate 组件来完成此操作 然后我使用日期格式化程序从中获取日期它 除了一种情况外 一切正常 如果 GMT 时间在 11 月 3
  • 替换文本文件中的模式

    下面是我的示例 html 文件 some text here img src http site com 7b399e20 77165 5fa 2a31ffb8 jpg sometext here some text here img sr
  • 如何使用 Yocto SDK 构建 Linux 内核模块?

    我正在尝试使用 Yocto SDK 构建 Linux 内核模块 但是 我遇到了编译错误 它抱怨 include uapi asm generic int ll64 h 12 10 fatal error asm bitsperlong h
  • 修改密码后无法登录mysql 5.7.9

    我已经安装了MysqlVer 14 14 Distrib 5 7 9 适用于 Linux x86 64 使用 EditLine 包装器 On CentOS Linux 版本 7 1 1503 我使用以下命令更改了 root 密码 alter
  • 为新的输入字符串重用 Antlr 对象(C++ 运行时)?

    我已经使用 C 运行时演示构建了一个基本解析器 并且运行良好 但是 我通常会解析大量输入字符串 是否可以修改代码以重用现有对象进行重复调用 如果是这样 有人有这方面的例子吗 是的 可以重复使用这些对象 解析调用的典型序列如下所示 input
  • XMLHttpRequest 读取外部文件

    我想通过 JavaScript 在客户端浏览器上运行 检索文本文件 从给定 URL 中包含的数据 到目前为止 我已经尝试过以下方法 var xmlhttp text xmlhttp new XMLHttpRequest xmlhttp op
  • 如何访问 SQL2005 Profiler 中的 Context_Info() 变量?

    我使用 Context Info 变量来跟踪正在执行存储过程和自由格式 SQL 的用户 对此服务器上的问题进行故障排除时 每个会话都会通过 我希望能够引入 context info 变量的值并基于它进行过滤 在设置 context info
  • 如何实现连续拖拽菜单效果?

    我正在尝试实现拖放菜单效果 我不知道该怎么做 也许有人有这种确切效果的经验 很简单 当用户触摸菜单项时 我希望在他们触摸的位置出现一个图形 他们的触摸现在将控制图形的平移 释放触摸后 图形将位于其位置并呈现完整的 Alpha 我已经熟悉创建
  • Rhino:在 Javascript 实现中访问 Java 接口变量

    Rhino 如何在Javascript实现中访问Java接口变量 我向其他方公开了一个 java 接口 让他们在 javascript 中提供相同的实现 public interface APIInterface public static
  • pg_ctl:加载共享库时出错:libpq.so.5

    我正在尝试通过以下方式获取 postgres 服务器状态 sudo etc init d postgres status u postgres 但出现以下错误 home alex olddisk usr local pgsql bin pg
  • ImportError:Python 中没有名为 ... 的模块错误 - 设置 PYTHONPATH 仍然不起作用

    我遇到与此处描述类似的问题如何修复 Python 中的 ImportError 没有名为 的模块 错误 但我无法通过设置 PYTHONPATH 的建议来修复它 我的目录如下所示 project python src ml init py c
  • File.ReadAllLines() 紧随其后的 File.WriteAllLines() 由于锁定而导致异常

    在我的程序中 我有一段代码 var lines File ReadAllLines myFileName if lines 0 null does a few things File WriteAllLines myFileName lin