gpt4 book ai didi

c# - 让多个进程读取同一个文件的正确方法?

转载 作者:行者123 更新时间:2023-11-30 17:23:08 27 4
gpt4 key购买 nike

我有很多进程读取存储在网络共享上的文件。最初我只能让一个进程读取文件,所有其他进程都会抛出异常。我实现了以下代码来处理这个问题:

using (StreamReader fileStreamReader = new StreamReader(File.Open(path, FileMode.Open, FileAccess.Read, FileShare.Read)))
{
content = fileStreamReader.ReadToEnd();
}

这让多个进程读取同一个文件,但是它似乎仍然有问题,因为有时多个进程仍然无法访问该文件。然而,当文件未被使用时,我可以稍后返回并打开它。现在我有一些随机延迟的重试行为,到目前为止,似乎有帮助。这样做对我来说似乎有点古怪,那么更好的方法是什么?

这是奇怪的部分,我得到的异常根本不是来自文件 IO,而是来自名为 CommStudio 的库。简而言之,我将文件转储为一个字符串,稍微修改它,将其转储到内存流中,然后通过 rs232 上的 ymodem 将其发送出去。异常告诉我远程系统已取消。获取数据的设备报告存在传输错误,这通常意味着接收到不完整/空文件。

通常我会将此归咎于库,但它在案头测试和只有一个进程访问文件时完美无缺。唯一真正看起来一致的是,当多个进程正在访问一个文件时,它很可能会失败。

最佳答案

有类似的问题,但没有时间找到理想的解决方案。我创建了一个 web 服务并将文件粘贴到 web 服务应用程序本地。然后创建了一个简单的单行 GET API,它通过办公室内部网调用。因此确保只有调用应用程序编辑了日志文件。杂乱但功能。

关于c# - 让多个进程读取同一个文件的正确方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2338383/

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