Pat*_*ick 10
以上都不适合我。因此我找到了这个解决方案
由汉斯·帕桑特(Hans Passant)撰写,做得很好。
string prcName = Process.GetCurrentProcess().ProcessName;
var counter_Exec = new PerformanceCounter("Process", "Working Set - Private", prcName);
double dWsp_Exec = (double)counter_Exec.RawValue / 1024.0; <---that is the value in KB
Run Code Online (Sandbox Code Playgroud)
另外,我有时会发现细微的差异(<10%),这可能与不同的更新有关。

唯一的小缺点是第一条指令需要很长时间(5 英寸)来积累数据,因此可能会在线程中处理它。
大概你正在查看"任务管理器"中的错误列或在Process类中使用错误的属性.
我想你要找的WorkingSet64不是PrivateMemorySize64.PrivateMemorySize64是为进程分配的虚拟内存量,而不是物理内存.用于物理内存使用WorkingSet64.
此外,您需要process.Refresh()在访问流程类中的任何动态属性之前调用,因为它是高度缓存的.
process.Refresh();
_data.MemoryUsed = (process.WorkingSet64).ConvertBytesToMegabytes().ToString(CultureInfo.InvariantCulture);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9205 次 |
| 最近记录: |