为什么Silverlight在使用COM时会泄漏内存?

Sof*_*mes 7 com silverlight memory-leaks

我们在Out Of Browser Silverlight应用程序中托管遗留COM组件时发现了这个问题,首先认为这是我们的COM组件的一个问题.

然而,将其缩小到托管可以想象的最基本的COM组件仍然存在内存泄漏.这个用于测试的COM组件是用.NET编写的,每次定时器触发时都会将事件发送回Silverlight应用程序.每个事件仅包含一个字符串.

运行Silverlight应用程序时,进程内存使用量不断增长.Profilers显示托管内存没有增加,表明Silverlight运行时/ COM实现中存在泄漏.

有没有其他人看过这个问题,如果有的话,你有没有能够解决这个问题?

编辑: Repro项目现在可在http://bitbucket.org/freed/silverlight-com-leak上找到

Jef*_*tes 0

确保 COM 组件正在释放它分配的所有字符串。