我正在寻找替代方法来获取总CPU利用率和C#中设备上可用RAM的数量。在C#中获取设备的CPU利用率和WinCE上的可用RAM
这里有描述一个非常简单的解决方案:http://zamov.online.fr/EXHTML/CSharp/CSharp_927308.html
然而,PerformanceCounter类不包含在.NET Compact Framework 3.5中。
还有其他方法吗?
谢谢:)
我正在寻找替代方法来获取总CPU利用率和C#中设备上可用RAM的数量。在C#中获取设备的CPU利用率和WinCE上的可用RAM
这里有描述一个非常简单的解决方案:http://zamov.online.fr/EXHTML/CSharp/CSharp_927308.html
然而,PerformanceCounter类不包含在.NET Compact Framework 3.5中。
还有其他方法吗?
谢谢:)
免费RAM是相当容易 - 虽然你有物理和虚拟抗衡 - 无一不是重要的。你为P/Invoke GlobalMemoryStatus(像往常一样,自卫队已经包装在一个更友好的对象模型中)。
CPU使用率是完全不同的动物。在PC上,你有一个漂亮的处理器寄存器,可以让你轻松,便宜地访问CPU使用率。在ARM(这是你的WinMo设备中的),你没有这个。它可以使用Toolhelp APIs和GetThreadTimes
的混合来计算,但它非常笨重,计算它的过程本身使用了大量的CPU。一般来说,获取CPU使用率不值得花费代码或获得它所需的执行时间。
您需要总结进程的线程进程时间,然后获取进程的列表以及他们在一段时间内运行的时间:http://www.hjgode.de/wp/2012/12/14/mobile-development-a-remote-cpu-monitor-and-cpu-usage-analysis/