gpt4 book ai didi

c# - 如何避免文件阻塞

转载 作者:行者123 更新时间:2023-12-03 13:22:42 26 4
gpt4 key购买 nike

我们正在监视写入XML list 的自定义应用程序(其源不受我们控制)的进度。有时,由于无法写入 list 文件而导致应用程序卡住。尽管我们通过使用File.Close显式关闭文件句柄并在Using Blocks中创建文件变量来覆盖跟踪。但是不知何故,它一直在发生。 (我们的应用程序是多线程的,最多三个线程正在访问该文件。)
另一个有趣的事情是,他们的应用程序在三个不同的事件(添加项目,删除项目,项目完成)上更新此 list ,但我们仅遇到一个事件(项目完成)。我的代码在这里列出

using (var st = new FileStream(MenifestPath, FileMode.Open, FileAccess.Read))
{
using (TextReader r = new StreamReader(st))
{
var xml = r.ReadToEnd();
r.Close();
st.Close();
//................ Rest of our operations
}
}

最佳答案

如果仅从文件读取,则应该能够传递一个标志来指定共享模式。我不知道如何在.NET中指定它,但是在WinAPI中,您需要将FILE_SHARE_READ | FILE_SHARE_WRITE传递给CreateFile()

建议您查看文件API文档,以了解其中提到共享模式的地方。

关于c# - 如何避免文件阻塞,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/218096/

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