.NET(C#):监控CPU和内存的使用状况
最近在用C#/WPF写一个任务管理器程序,先把监控CPU和内存的部分单独放出来。
完全和任务管理器显示同样的数据:
当前版本的程序和源代码下载
注意:此为微软SkyDrive存档,请用浏览器直接下载,用某些下载工具可能无法下载
程序运行环境:.NET Framework 4.0 Client Profile
源代码环境:Visual Studio 2010
作者:Mgen
关于代码,CPU方面的以前讲过,可以参考:
内存上比较有趣,方法有很多。可以使用WMI的Win32_PhysicalMemory,但是由于程序要频繁(每秒一次)进行信息的刷新,所以使用WMI会难免有些慢。第二就是使用API的GlobalMemoryStatus方法,缺点是需要进行平台调用的一些列套路(DllImport,参数的封送……)。程序用第三种方法,直接引用 Microsoft.VisualBasic.dll类库(在.NET Framework 2.0后加入的类库,属于.NET Framework本身),并用ComputerInfo类型的AvailablePhysicalMemory和TotalPhysicalMemory来获取当前剩余/全部物理内存。注意每当获取上述属性,它们的值会自动刷新的,不需要调用其他方法。
事实上第三种方法内部也调用了GlobalMemoryStatus API方法,你可以在ILSpy找到相应线索。(ComputerInfo的私有Refresh方法会调用NativeMethods.GlobalMemoryStatus平台调用)。
其他关于内存的可以参考:


浙公网安备 33010602011771号