我有一个带有标签的表单,每隔2秒由System.Windows.Forms.Timer控件更新一次。在任务管理器中,我看到内存使用率正在增长,即使程序什么都不做(但标签仍在使用最新信息进行更新,例如内存使用情况)标签文本的示例代码:
tlblRam.Text = string.Format("Ram: {0} MB", ConvertBytesToMegabytes(System.Diagnostics.Process.GetCurrentProcess().PrivateMemorySize64).ToString("0.00"));
但是,如果我强制GC收集世代 - 它会将所有内存返回到某个较低的状态。它也是在非活动程序工作约5分钟后自动完成的。这是否意味着GC正在等待其2代周期,然后才收集所有tlblRam.Text值的字符串?
答案 0 :(得分:1)
这是否意味着GC正在等待其2代周期,然后只收集所有tlblRam.Text值的字符串?
基本上,是的。在运行的Windows应用程序中可能会有更多东西声称和释放内存。
更重要的是:别担心,这里没有问题。不要试图通过手动启动y ='帮助',你只会让它变得更糟。