在我关闭表单(从基本表单派生)的Windows窗体应用程序中,其FormClosing和FormClosed事件触发但析构函数永远不会触发。它仍然会占用内存。
关于如何在关闭时彻底销毁表单的任何想法?
答案 0 :(得分:0)
析构函数(或者更确切地说,终结函数 - 在.NET中没有析构函数)不能保证在.NET中执行 - 对象可以在运行时突发奇想时清除甚至从不 。你不能依赖你的终结者方法。
如果您需要在表单关闭时执行某些操作,请处理已关闭的事件。
如果需要释放非托管资源(例如,关闭打开的文件),请将此逻辑添加到Dispose()方法。
如果您担心内存使用,请不要担心内存使用。运行时根据自己的逻辑自动管理内存。
答案 1 :(得分:0)
如果它没有被破坏,那意味着垃圾收集器认为它不应该被销毁。
这基本上意味着你要么:
垃圾收集器在没有引用之前不会释放该表单。
如果您要处理重要资源,请将其设为IDisposable
,然后使用Dispose方法。