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

时间:2012-10-15 13:39:52

标签: memory process windows-mobile compact-framework

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

我开始访问实际的流程对象。为了将processId传递给Process.GetProcessById(int processId)方法,我遵循了this解决方案。

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

必须有办法实现这一点,因为 FDCSoft任务管理器等工具会显示每个WM流程的内存使用情况以及更多的流程数据。

1 个答案:

答案 0 :(得分:1)

CF BCL中没有任何内容可以为您提供这些信息。您需要P / Invoke Toolhelp Functions并构建一个堆列表,然后将它们相加以获得总进程使用量。通常,呼叫顺序看起来像这样:

  • 致电CreateToolhelp32Snapshot,确保传递TH32CS_SNAPHEAPLIST旗帜
  • 致电Heap32ListFirst了解第一个HEAPLIST32结构
  • 继续调用Heap32ListNext以获取更多结构,直到它返回FALSE
  • 致电Call CloseToolhelp32Snapshot`