我有一个 VB.NET 用户控件,它正在保存 PDF 文档,然后在 WebBrowser 控件中显示它。代码如下所示:
Using myPdfDoc As New FileStream(fileName, FileMode.Create)
Dim byt As Byte() = comLib.GetData();
If Not byt Is Nothing Then
myPdfDoc.Write(byt, 0, byt.Length)
myPdfDoc.Flush()
myPdfDoc.Close()
webBrowserCtl.Navigate(fileName)
End If
End Using
comLib 是一个 COM 互操作库,用 VB6 编写,用于获取相关数据。
据我所知,这段代码保留了对 PDF 文档的引用(因为 VB.NET 在程序完成时不会关闭)。我发现这篇文章似乎暗示 adobe 无法正确清理自身,但实施其建议的更改似乎无济于事。
为什么我会得到这种行为?在 VB6 中,程序不能正常关闭通常是由于未清除的杂散对象引用造成的。这在 VB.NET 中仍然成立吗?如果是这样,我该怎么做才能确定哪个对象,或者为什么会发生这种情况?