![]() |
1
1
查看代码时,返回的字符串(11个字符+终止零)=24字节(Unicode)。在COM自动化中,使用bstr将前导指针(32位)加上4个字节,然后乘以10000,wich为10000*28=280000字节。 这意味着每毫秒(计时器的值为1),您将分配大量内存,在.NET中,28万字节的块可能会分配给大对象堆(>85000字节)。在大多数情况下,撞击LOH的结果是…内存问题,如这里所示,例如: Large Object Heap Fragmentation 这也许是你应该检查的东西。要测试的一件简单的事情是减小您的大消息的大小。你也可以用windbg潜水: http://blogs.msdn.com/b/tess/archive/2008/08/21/debugging-silverlight-applications-with-windbg-and-sos-dll.aspx 检查下到底发生了什么。 |
![]() |
2
0
确保COM组件正在释放它分配的任何字符串。 |
![]() |
3
0
不熟悉Silverlight,但Interop难题的另一个可能原因是事件处理: http://www.codeproject.com/KB/cs/LingeringCOMObjects.aspx |
![]() |
4
0
是否存在未被垃圾收集的本机资源?也许这是 非常 少数情况下打电话给gc.collect可能会有好处。有趣的阅读 here 只是为了测试,你可以打电话给gc。收集一些(甚至三次)看看会发生什么(我不敢相信我真的在建议这个…)。 |
![]() |
Cleric · C#运行主动自动化对象-如何源事件? 7 年前 |
![]() |
Daniël J · 使用GUI制作COM服务器的最佳实践是什么? 7 年前 |
![]() |
Toponimo · 从Python访问COM方法 7 年前 |
|
user8666372 · 自动向可用引用添加引用 7 年前 |