2011-02-12 1 views
2

J'essaie d'écrire un gadget Silverlight 4 Windows Sidebar qui, entre autres choses, peut surveiller l'utilisation de chaque cœur du processeur (en pourcentage) et l'utilisation de RAM (en octets) de l'ordinateur hôte. J'ai essayé d'utiliser System.Management, mais Visual Studio ne me laisse pas l'ajouter, car il ne fait pas partie de Silverlight. En fin de compte, je cherche une méthode qui retourne simplement l'utilisation d'un noyau CPU spécifique. La détection automatique du nombre de cœurs serait un bonus. La même chose vaut pour la RAM.Détermination de l'utilisation du processeur et de la RAM dans un gadget Silverlight 4 WIndows Sidebar

Une recherche approfondie m'a amené à croire que cela est possible grâce à l'automatisation COM +, mais je n'ai aucune idée de comment. Toute direction serait très appréciée.

Répondre

1

Vous pouvez utiliser System.Windows.Analytics classe pour obtenir des statistiques systèmes ..

Il a une AverageProcessorLoad que vous pouvez utiliser pour obtenir l'utilisation actuelle du processeur (valeur entre 0 et 1) .Et son pour Silverlight seulement.

Vous pouvez simplement l'utiliser comme ceci:

float averageCPUUsage = System.Windows.Analytics.AverageProcessorLoad; 
float myAppCPUUsage = System.Windows.Analytics.AverageProcessLoad;// Get cpu usage by your current app. 

Mise à jour

Mais de Silverlight c'est aussi loin que nous pouvons aller .. pour le nombre de RAM et processeur vous aurez besoin d'avoir somthing installé sur le côté client lui-même pour vous dire .. du navigateur, vous ne pouvez pas.

+0

C'est agréable, mais il me donne seulement une charge moyenne sur tous les cœurs. Ce serait bien d'avoir la charge pour chaque noyau. En outre, je ne vois aucun moyen d'obtenir la mémoire libre/totale. – Ethan

+0

Désolé, mais de Silverlight c'est aussi loin que nous pouvons aller .. Pour le nombre de RAM et de processeur, vous aurez besoin de faire quelque chose installé sur le côté client lui-même pour vous dire .. du navigateur, vous ne pouvez pas. –

1

Vous pouvez également jeter un oeil à l'exemple de l'utilisation System.Windows.Analytics sur this article.

Un petit fragment de code à partir de cet article qui montre l'utilisation de 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(); 
    } 
} 
+0

Cela devrait probablement être un commentaire sur la réponse de Shekhar. – thegrinner

+0

Ou au moins résumer comment vous pourriez atteindre l'objectif du PO en utilisant le code de cet article: http://meta.stackexchange.com/questions/13369/is-it-okay-to-answer-a-stackoverflow-question-with- a-link – Nanne

+0

Oui, sûrement, il devrait être posté comme un commentaire sur la réponse précédente, mais je n'ai pas trouvé le bouton "ajouter un commentaire". – sainr

Questions connexes