问题原因:
那些问题的核心是关闭页面的时候并没有正确卸载掉webbroeser control, 而仅仅是将其当作普通窗口一样,以为关闭父窗口后,子窗口就能自然的关闭掉了,这里也确实是关闭掉了,但这是个com对象,除了显示出来的部分,还有很多数据占着内存,于是就出现了那样的问题,估计那3个问题都是因为这个而起。
解决:
找到正确的卸载代码,IOleObject.Close,原来有这么个东西啊,一直都不知道。
验证:
内存不能释放的问题似乎是解决了,其他2问题有待测试。
一些思考疑问:
做了用了这么久,竟然就没想到应该这样去卸载webbrowser control,好失败,有点不合常理,以后一定注意。最后set 某某=nothing之前,通过某方法检测到其引用计数还是2,但这个nothing后,竟然能卸载了,奇怪奇怪。