当前位置:编程学习 > C#/ASP.NET >>

C#制作的ActiveX在IE标签关闭时不能正确释放

先说说现象吧:
如果打开ActiveX的IE窗体有多个标签页,则关闭ActiveX控件所在的标签页之后还必须把该IE窗体剩余标签页完全关闭,才能释放ActiveX控件。如果不关闭其余标签,则要等待1分钟甚至更长时间才会释放(析构函数被调用)。

具体描述:
该ActiveX控件是由C# WinForm控件制作的,但是不同的是该WinForm控件中使用ElementHost控件嵌入了一个WPF控件(因为WPF控件无法直接生成ActiveX,网上很多人都用此方式迂回生成),大部分的程序逻辑都集中在WPF控件中,WinForm控件只是对外提供接口。

为了解决上面的问题,我在ActiveX所在的标签页关闭时清理了所有ActiveX使用过的资源,将WPF控件对象(全局只new了一个WPF控件对象)的所有引用都置为了NULL,然后调用了GC.Collect试图回收WPF对象,但是WPF对象的析构方法只有在整个IE窗口都关闭时才被调用。

朋友们有什么解决办法或者建议请不吝赐教,感激不尽。 C# ActiveX IE
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,