2

我已经根据本教程编写了 BHO:http: //www.codeproject.com/KB/cs/Attach_BHO_with_C_.aspx

我的GetSiteSetSite与教程列表相同。我正在添加/删除一个处理程序并在SetSite 函数内OnDocumentComplete分配SHDocVW.WebBrowser webBrowserIObjectWithSite

出于调试目的,我删除了除基本功能之外的所有功能。这是我的OnDocumentComplete处理程序。

    public void OnDocumentComplete(object pDisp, ref object URL)
    {
        if (true)
        {

            HTMLDocument document;
            document = (HTMLDocument)webBrowser.Document;
            /*need to do some stuff here to the doc*/
            //then free up script references somehow?
        }
        return;
    }

当我将我的 VS2008 调试器附加到 IE 实例时,我注意到所有加载的 .js 在它们各自的窗口/选项卡关闭后仍然存在。如果我将 OnDocumentComplete 中的条件设置为 false(或禁用我的 BHO),泄漏就会消失。我需要对 mshtml.HTMLDocument 进行更多清理吗?谢谢!

4

1 回答 1

3

尝试调用Marshal.ReleaseCOMObject(document).

于 2010-07-13T21:39:53.360 回答