描述:
1.写了一个简单的程序,Form1上放了一个Button, 事件中创建Form2窗口对象
2.每点击一次button内存会增长40KB左右,关闭form2时内存并没有减少。
3.重复2的操作20次后,内存占用会越来越多。
4.等待大概20分钟后观察内存,内存比最后一次操作只少了几十KB,内存并没有回到没操作的状态。
private void button1_Click(object sender, EventArgs e)
{
Form2 form = new Form2();
form.ShowDialog();
}
问题:
1.当关闭Form2后,我们并不会再使用到该对象。GC为什么没有回收。
2.GC如果不是即时回收,等待20多分钟 并没有作任何操作,GC 也并没有将没有使用的对象全部回收。
3.希望讲讲GC的原理。