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