2011-02-12 65 views
2

我正在尝试编写Silverlight 4 Windows边栏小工具,该工具可以监视每个CPU内核的使用情况(以百分比表示)以及使用主机的RAM(以字节为单位)。我试过使用System.Management,但Visual Studio不会让我添加它,因为它不是Silverlight的一部分。确定Silverlight 4 Windows Sidebar小工具中的CPU和RAM使用情况

最后,我正在寻找一些简单地返回特定CPU内核使用情况的方法。自动检测核心数量将是一项奖励。 RAM也是一样。

广泛的搜索导致我相信这是通过COM +自动化实现的可能性,但我对于如何做到无能为力。任何方向将非常感激。

回答

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的,这是因为只要我们可以去..对内存和处理器数量,你将需要有财产以后安装在客户端本身告诉你..从浏览器你不能。

+0

这是很好的,但它只是让我在所有核心的平均负载。每个核心都有负载会很好。另外,我看不出有什么办法获得免费/全部内存。 – Ethan 2011-02-13 04:31:36

+0

对不起,但从silverlight这是尽可能我们可以去..对于内存和处理器数量,你将需要做的事情安装在客户端本身告诉你..从浏览器你不能。 – 2011-02-13 04:39:55

1

你也可以看看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(); 
    } 
} 
相关问题