【发布时间】:2015-05-06 17:24:50
【问题描述】:
关于 Hans Passant 对这里问题的回答...Clean up Excel Interop Objects with IDisposable...
他让我意识到我不需要遵循两个点规则...声明所有 com 对象,以便在处理完它们后可以通过 Marshal.ReleaseComObject 释放它们。所以现在我明白我可以在我的 Excel 代码之后调用 GC.Collect 和 GC.WaitForPendingFinalizers 并且所有对象都将被正确释放。一方面,我认为这很好,并且会减少我在 c# 中编写的宏的长度,但我习惯于在使用完对象后立即释放对象,以最大限度地减少宏运行时的内存使用量。我应该关心清理对象,还是像汉斯建议的那样在宏末尾进行清理可以吗?我通常处理大文件,我的宏会创建许多 com 对象来完成一项任务。
【问题讨论】:
标签: .net excel interop com-interop