|
|
1
3
这里还有一些解释这种行为的附加信息。
|
|
|
2
2
表单不会自动释放在其代码中创建的所有控件,因为它无法知道它的存在。若要使窗体到窗体以在释放时自动释放它,需要将其添加到控件集合中。 现在,在你的情况下,那可能什么都不做。我不知道你的例子是人为的,还是真实的。如果它是真实的,那么行为是预期的,因为当变量超出范围时面板不会被收集(也不确定它是否在桌面上)。它可以用于收集,但这只意味着在下次收集通过时,它将被扫描。除非你引起GC,否则它不会被释放。 我强烈建议你看看 MSDN webcast on memory management in the CF . 它提供了一个关于引擎盖下发生的事情的更为全面的解释——远远超过了我们在这里的答案所能提供的。 |
|
3
1
你确定你有内存泄漏吗?.NET Compact Framework垃圾收集器的工作方式与完整.NET Framework中的垃圾收集器略有不同。从 Steven Pratschner's blog :
|
|
|
4
1
我认为您还需要动态删除按钮click eventhandler,如您在本博客中看到的: http://blogs.msdn.com/stevenpr/archive/2007/03/08/finding-managed-memory-leaks-using-the-net-cf-remote-performance-monitor.aspx 也是史蒂芬·普拉施纳写的。 顺便说一下,上面提到的网络广播链接在这里: http://msevents.microsoft.com/cui/WebCastEventDetails.aspx?culture=en-US&EventID=1032318791&CountryCode=US 希望这有帮助! |