QTAgent32 保持文件打开状态

本文关键字:状态 文件 QTAgent32 | 更新日期: 2023-09-27 17:56:04

我们正在编写一个应用程序,它将从各种文件中提取第一个文本,然后提取图像。

在我们的测试脚本中,我们发现一旦我们提取了文本并尝试打开文件进行图像提取,该文件就会被另一个进程保持打开状态。

我们已经关闭了对文件的所有引用,释放了它们并将它们设置为 null。

使用Process Explorer,我们发现是QTAgent32将其打开。

我们如何告诉这个库释放句柄,或者这是一个已知的错误,它不会影响生产代码?

QTAgent32 保持文件打开状态

QTAgent32 是 Visual Studio 的测试运行器。

这意味着您的测试有一个您忘记关闭的FileStream

尝试在调试中运行测试,暂停执行,看看你中断了什么。(关于这种"穷人的剖析"技术,在堆栈溢出的某个地方有一个很好的答案)。

我以这种方式解决了这个问题的实例。在第一次尝试时,我很惊讶地看到调用NetworkStream.Read时执行中断。它在后台线程上运行,因此测试仍在通过,但显然不打算包含在测试中。无论如何,它是死代码,所以我完全删除了它,重新启动了VS,测试再次顺利运行。