确定Silverlight 4 Windows Sidebar小工具中的CPU和RAM使用情况
问题描述:
我正在尝试编写Silverlight 4 Windows边栏小工具,该工具可以监视每个CPU内核的使用情况(以百分比表示)以及使用主机的RAM(以字节为单位)。我试过使用System.Management,但Visual Studio不会让我添加它,因为它不是Silverlight的一部分。确定Silverlight 4 Windows Sidebar小工具中的CPU和RAM使用情况
最后,我正在寻找一些简单地返回特定CPU内核使用情况的方法。自动检测核心数量将是一项奖励。 RAM也是一样。
广泛的搜索导致我相信这是通过COM +自动化实现的可能性,但我对于如何做到无能为力。任何方向将非常感激。
答
您可以使用System.Windows.Analytics类来获取系统统计..
它有一个AverageProcessorLoad,你可以用它来获得当前CPU使用率(0之间的值和1) 。而只有其Silverlight的。
您可以简单地使用这样的:
float averageCPUUsage = System.Windows.Analytics.AverageProcessorLoad;
float myAppCPUUsage = System.Windows.Analytics.AverageProcessLoad;// Get cpu usage by your current app.
更新
但是从Silverlight的,这是因为只要我们可以去..对内存和处理器数量,你将需要有财产以后安装在客户端本身告诉你..从浏览器你不能。
答
你也可以看看System.Windows.Analytics
的使用样本this article。
的那篇文章的代码小片段显示System.Windows.Analytics
用法:
public partial class Page : UserControl
{
Analytics analytics;
public Page()
{
InitializeComponent();
CompositionTarget.Rendering += new EventHandler(CompositionTarget_Rendering);
}
void CompositionTarget_Rendering(object sender, EventArgs e)
{
if (analytics == null)
analytics = new Analytics();
}
}
这是很好的,但它只是让我在所有核心的平均负载。每个核心都有负载会很好。另外,我看不出有什么办法获得免费/全部内存。 – Ethan 2011-02-13 04:31:36
对不起,但从silverlight这是尽可能我们可以去..对于内存和处理器数量,你将需要做的事情安装在客户端本身告诉你..从浏览器你不能。 – 2011-02-13 04:39:55