在WPF应用程序上,我使用System.AddIn(MAF)进行加载并显示加载项。我的插件通过MAF管道返回一个FrameworkElement(HwndHost)。 The documentation here
我从任务管理器测量进程的私有内存。
我的测试涉及加载和卸载插件,仅返回一个文本块并查看内存。
对于负载,我使用token.Activate<IHostView>(AddInSecurityLevel.FullTrust)
对于卸载,我使用AddInController.GetAddInController(hostview).Shutdown()
当我加载该插件然后卸载它时,内存会减少,但不要恢复到此原始值。还有更多兆字节。而且,如果我重复多次此操作,显然,内存会长大。
为解决我的问题,我尝试强制使用HwndHost.Dispose()
,然后再将其从布局中删除。没有成功
我注意到“丢失”的内存大小取决于窗口或布局的大小...
谢谢。