【发布时间】:2017-11-20 16:53:29
【问题描述】:
我正在使用 C# 在 Visio 中自动绘图。我正在使用 Microsoft.Office.Interop.Visio。当我自动化绘图时,我正在创建 7 个 Shape 对象。当绘图完成并完成功能时,我在诊断中注意到内存使用量不断上升。它开始时为 16MB,每运行 2 次单击按钮创建绘图,内存就会增加 1MB。
阻止这种情况发生的唯一方法是使用 GC.Collect()。但从我所有的阅读来看,每个人都说不要使用它。那么关闭 COM 对象的正确方法是什么?我还读到这可能是 GC.Collect 可以使用的罕见实例之一,但不确定。
【问题讨论】:
-
是的,这正是 GC.Collect() 所针对的场景。您的程序只是没有对 GC 堆施加足够的压力来触发正常的收集。
-
很高兴听到其他人同意这一点。
标签: c# com garbage-collection visio