在C#C&C的demo开发中碰到垃圾回收问题,从开始的150K一直涨到2M,手动垃圾回收也不见效。
后来想到唯一一个可能ToolTip只能设定Tip, 好像没有移除过,那会不会控件从winform上移除以后在tooptip控件上还保留引用而没有被回收呢?

把程序中断,手动执行tooltip.RemoveAll()。看看,内存释放了。
看样toopTip还不够只能。

那怎样在每个部队牺牲后去分别在toopTip上注销它呢?从文档看ToolTip没有提供Remove(Control)方法。
用Reflector查看SetToolTip(Control,string)方法发现,如果string是空toolTip会移除控件。

OK, 问题解决。下面是改进版的CCC,里面能看到每次垃圾回收后内存状况:
http://www.gotdotnet.com/Community/Workspaces/viewuploads.aspx?id=1b78f7c1-895f-49a7-8fa6-1565db16d41b

knowbug, NPC增加的太多程序会死掉
posted on 2004-05-26 11:24  steeven  阅读(1045)  评论(0编辑  收藏  举报