我有一个控制台应用程序,可以通过COM互操作自动化另一个Windows应用程序。它使应用程序自动打开文件,拍摄屏幕截图然后退出。
我想知道如果我没有在实例化的有限数量的com对象上调用Marshall.ReleaseComObject,是否会有任何不良影响?调用release方法来清理对象似乎更简洁但在这种情况下是否真的有必要?
答案 0 :(得分:2)
有必要吗?可能不是。但如果你不这样做,我几乎可以保证在某些时候会回来咬你。每当我使用一个未包装的COM对象时,我总是将它包装在try ... finally块中并在finally中执行ReleaseComObject
。