另一个进程使用的调试文件

本文关键字:调试 文件 进程 另一个 | 更新日期: 2023-09-27 18:35:03

使用Visual Studio 2010,在尝试读取文件时几乎随机地得到"文件被另一个进程使用"。我使用相同的过程将大约 10 个 xml 文件读入内存

中断的代码是

private static TextReader CreateTextReader(IsolatedStorageFile isolatedStorageFolder, string path)
        {
            TextReader textReader = null;
            if (isolatedStorageFolder == null)
                textReader = new StreamReader(path);
            else
                textReader = new StreamReader(new IsolatedStorageFileStream(path, FileMode.Open, isolatedStorageFolder));
            return textReader;
        }

代码中断 10% 的时间

 textReader = new StreamReader(path);

我个人认为这是某种垃圾收集问题,任何人都可以了解如何调试此类问题。

另一个进程使用的调试文件

请务必致电 。处置或 。关闭所有可能锁定文件的 Steam 阅读器操作。这可能是您的问题,因为该代码作为平面程序对我有用。

您需要处理TextReader。使用using语句,例如

using (TextReader r = CreateTextReader(...))
{
}

否则,当您关闭应用程序时,该文件将保持打开状态。

编辑
您在评论中说您实际上已经在使用using - 可能是您尝试读取的文件实际上是由另一个应用程序打开的吗?有时 antivir 解决方案会在扫描文件或类似的东西时锁定文件 - 它会在短时间内工作还是您必须重新启动或类似的东西?