我有一个似乎泄漏内存的 WindowsForms 应用程序,因此我使用 Redgate 的 ANTS Memory Profiler 来查看我怀疑的对象,发现它们仅由已在Finalizer Queue上的对象持有。太好了,究竟什么是终结器队列?你能指出我最好的定义吗?你能分享一些轶事建议吗?
此外,Finalizer Queue 上的所有根 GC 对象都是名为“caller”的System.Windows.Forms.Control+ThreadMethodEntry对象的实例。我看到它涉及多线程UI交互,但除此之外我知道的不多。原谅我明显的懒惰和承认的无知,但这些资源都埋在供应商的组件中。我正在与供应商讨论这些问题,但我需要一些指导来加快对话速度。你能指出我对 ThreadMethodEntry 最有用的定义吗?有什么轶事建议吗?
另外,我什至应该关注终结器队列中的这些对象吗?
更新:这篇红门文章很有帮助。