Winform应用程序,窗口最小化强制垃圾收集?

时间:2011-02-08 17:08:44

标签: c# .net vb.net memory-management garbage-collection

这是方案,winforms应用程序,通过任务管理器进程监视器进行监视。

在初始启动时旋转高达~61,000K(初始数据网格和数据加载) 如果我最小化应用程序,不接触或做任何事情,内存使用量下降到1,380K。 当我恢复应用程序时,旋转回到5.8K

所以我的问题是,最小化是否会发送一些内部消息来清理资源,因为有问题的应用程序不是焦点?

我注意到的第一个应用程序恰好是VB.NET,但我在主要的C#winform应用程序中观察到了相同的行为。

1 个答案:

答案 0 :(得分:7)

您正在查看错误的内存统计信息。这是“工作集”,即映射到物理内存的虚拟内存量。内存。 Windows在检测到主窗口最小化时会主动修剪工作集。它假定用户暂时不会使用该程序,因此它会从RAM中取消映射页面,以便为其他进程腾出空间。当您重新关注焦点时,Windows仅将页面映射回实际需要的RAM。当应用程序闲置时,其中不是很多。

垃圾收集是一种虚拟内存操作。