c# – Process.PrivateMemorySize64在多次迭代时返回相同的值
此代码在每次迭代中返回相同的值:
var process = Process.GetCurrentProcess(); for (int i = 0; i < 10; i++) { Console.WriteLine(process.PrivateMemorySize64 + Environment.NewLine); } // Output: // 19853313 // 19853313 // 19853313 // 19853313 // ... 此代码返回不同的值: for (int i = 0; i < 10; i++) { var process = Process.GetCurrentProcess(); Console.WriteLine(process.PrivateMemorySize64 + Environment.NewLine); } // Output: // 19865600 // 20336640 // 20791296 // 21245952 // ... Process.GetCurrentProcess()是否记录内存值的快照? MSDN的GetCurrentProcess页面说明了这一点,但我不确定其含义是什么: 获取一个新的Process组件并将其与当前活动的进程相关联 解决方法
您需要调用以下行来刷新它:
process.Refresh(); 这应该适合你现在: var process = Process.GetCurrentProcess(); for (int i = 0; i < 10; i++) { Console.WriteLine(process.PrivateMemorySize64 + Environment.NewLine); process.Refresh(); } 输出我现在得到:
从他们提供的例子中的Process.PrivateMemorySize64 Property – MSDN. 此外,从Process.Refresh Method – MSDN开始,这将进一步解释:
有关什么是快照以及什么不是属性方面的一些其他信息,请参阅this StackOverflow Question. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |