Memory 如何使用.NET CF 3.5获取进程的内存使用率?

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进程的内存使用情况以及更多的

我正在寻找一种读取Windows Mobile进程当前内存使用情况的方法

我从访问实际的进程对象开始。为了获得要传递给
Process.GetProcessById(intProcessId)
processId
方法,我遵循了这个解决方案

不幸的是,.NET CF 3.5 API for
System.Diagnostics.Process
没有提供任何用于处理进程内存的属性/方法


一定有办法做到这一点,因为像FDCSoft Task Manager这样的工具会显示每个WM进程的内存使用情况以及更多的进程数据。

CF BCL中没有任何东西可以提供这些信息。您需要P/Invoke并建立一个堆列表,然后将它们相加以获得总的进程使用率。一般来说,调用顺序如下所示:

  • 调用
    CreateToolhelp32Snapshot
    ,确保传入
    TH32CS\u SNAPHEAPLIST
    标志
  • 调用第一个
    HEAPLIST32
    结构的
    Heap32ListFirst
  • 继续调用
    Heap32ListNext
    获取更多结构,直到返回FALSE
  • 调用
    Call
    CloseToolhelp32Snapshot`