2011-02-12 30 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(); 
    } 
} 
相關問題