确定Silverlight 4 WIndows边栏小工具中的CPU和RAM使用情况

时间:2011-02-12 02:15:24

标签: c# silverlight com+ windows-desktop-gadgets

我正在尝试编写一个Silverlight 4 Windows边栏小工具,除其他外,它可以监控每个CPU核心的使用情况(以百分比表示)和主机计算机的RAM使用情况(以字节为单位)。我尝试过使用System.Management,但Visual Studio不允许我添加它,因为它不是Silverlight的一部分。

最后,我正在寻找一种简单地返回特定CPU核心用法的方法。自动检测核心数量将是一个奖励。 RAM也是如此。

广泛的搜索让我相信这可以通过COM +自动化实现,但我对如何实现这一点毫无头绪。任何方向都会非常感激。

2 个答案:

答案 0 :(得分:1)

您可以使用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来看,这是我们可以做到的..对于RAM和处理器数量,你需要在客户端安装somthing来告诉你..从浏览器你不能。

答案 1 :(得分:1)

您还可以查看this articleSystem.Windows.Analytics用法的示例。

该文章的一小段代码,展示了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();
    }
}