Memory 如何使用.NET CF 3.5获取进程的内存使用率?
我正在寻找一种读取Windows Mobile进程当前内存使用情况的方法 我从访问实际的进程对象开始。为了获得要传递给Memory 如何使用.NET CF 3.5获取进程的内存使用率?,memory,process,windows-mobile,compact-framework,Memory,Process,Windows Mobile,Compact Framework,我正在寻找一种读取Windows Mobile进程当前内存使用情况的方法 我从访问实际的进程对象开始。为了获得要传递给Process.GetProcessById(intProcessId)的processId方法,我遵循了这个解决方案 不幸的是,.NET CF 3.5 API forSystem.Diagnostics.Process没有提供任何用于处理进程内存的属性/方法 一定有办法做到这一点,因为像FDCSoft Task Manager这样的工具会显示每个WM进程的内存使用情况以及更多的
Process.GetProcessById(intProcessId)
的processId
方法,我遵循了这个解决方案
不幸的是,.NET CF 3.5 API forSystem.Diagnostics.Process
没有提供任何用于处理进程内存的属性/方法
一定有办法做到这一点,因为像FDCSoft Task Manager这样的工具会显示每个WM进程的内存使用情况以及更多的进程数据。CF BCL中没有任何东西可以提供这些信息。您需要P/Invoke并建立一个堆列表,然后将它们相加以获得总的进程使用率。一般来说,调用顺序如下所示:
- 调用
,确保传入CreateToolhelp32Snapshot
标志TH32CS\u SNAPHEAPLIST
- 调用第一个
结构的HEAPLIST32
Heap32ListFirst
- 继续调用
获取更多结构,直到返回FALSEHeap32ListNext
- 调用
CloseToolhelp32Snapshot`Call