excel 是否不需要释放COM对象?

uujelgoq  于 2023-02-25  发布在  其他
关注(0)|答案(1)|浏览(196)

所以对于_excel = New Excel.Application,如果我不使用_excel.QuitFinalReleaseComObject(_excel),当我的应用程序关闭时,excel进程也将关闭。
另一方面,当我使用这两种清理方法时,excel进程将一直保留到我的应用程序关闭。
我正在使用Windows 10和Visual Studio 22
那么清理非托管资源是否已经过时了呢?

h5qlskok

h5qlskok1#

Office COM互操作在这里是出了名的糟糕......通常您应该做的是以创建对象的相反顺序释放每个对象。例如,首先创建Excel.Application,但我想您还引用了工作簿和工作表。如果在首次释放对工作表的引用并关闭工作簿之前调用.Quit,进程会留在内存中。你不应该调用FinalReleaseComObject,事实上,如果你仍然有引用没有被释放,它可能会也可能不会使进程崩溃...

相关问题