Probleme de mesures de différents compteur de performance avec une seule instanc

DDeXTeRR Messages postés 13 Date d'inscription samedi 23 août 2003 Statut Membre Dernière intervention 17 janvier 2010 - 10 oct. 2005 à 11:59
DDeXTeRR Messages postés 13 Date d'inscription samedi 23 août 2003 Statut Membre Dernière intervention 17 janvier 2010 - 10 oct. 2005 à 12:20
Salut a tous,

Voila, j'ecris une application d'analyse de performances de postes locaux ou distants en fonctions de règles définies par l'utilisateur. Pour cela j'instancie un objet PerformanceCounter et je lui passe les bonnes valeurs pour CategoryName, CounterName, InstanceName et MachineName.

Quand je mesure un seul compteur, tout va bien, mais des que je souhaite en mesurer deux l'un après l'autre dans le meilleur des cas, un seul me retourne un resultat correct, l'autre me retournant 0. Voici un exemple de code :

private void timer1_Elapsed(object sender, System.Timers.ElapsedEventArgs e) {
float f = -1;

this.performanceCounter1.CategoryName = "Memory";
this.performanceCounter1.CounterName = "Available KBytes";
this.performanceCounter1.InstanceName = "";			
f = performanceCounter1.NextValue();
this.label1.Text "Memory available KB " + f;

this.performanceCounter1.CategoryName = "Network Interface";
this.performanceCounter1.CounterName = "Bytes Received/sec";
this.performanceCounter1.InstanceName = "Realtek RTL8139 Family PCI Fast Ethernet NIC - Packet Scheduler Miniport";
f = performanceCounter1.NextValue();
this.label2.Text "bytes received/s " + f;

this.performanceCounter1.CategoryName = "Processor";
this.performanceCounter1.CounterName = "% Processor Time";
this.performanceCounter1.InstanceName = "_Total";
f = performanceCounter1.NextValue();
this.label3.Text "% Processor " + f;
}

C'est extrait d'une interface basique pour des test mais cela illustre bien mon probleme. Sur mon poste, seul le relevé de memoire parait fournir les bons resultats, les autre me fournissent 0.

J'utilise Visual Studio 2003 sur un WinXP SP2.

Merci d'avance pour les réponses

3 réponses

DDeXTeRR Messages postés 13 Date d'inscription samedi 23 août 2003 Statut Membre Dernière intervention 17 janvier 2010
10 oct. 2005 à 12:00
oups probleme au niveau des saut de ligne

private void timer1_Elapsed(object sender, System.Timers.ElapsedEventArgs e) {
float f = -1;

this.performanceCounter1.CategoryName = "Memory";
this.performanceCounter1.CounterName = "Available KBytes";
this.performanceCounter1.InstanceName = "";
f = performanceCounter1.NextValue();
this.label1.Text "Memory available KB " + f;

this.performanceCounter1.CategoryName = "Network Interface";
this.performanceCounter1.CounterName = "Bytes Received/sec";
this.performanceCounter1.InstanceName = "Realtek RTL8139 Family PCI Fast Ethernet NIC - Packet Scheduler Miniport";
f = performanceCounter1.NextValue();
this.label2.Text "bytes received/s " + f;

this.performanceCounter1.CategoryName = "Processor";
this.performanceCounter1.CounterName = "% Processor Time";
this.performanceCounter1.InstanceName = "_Total";
f = performanceCounter1.NextValue();
this.label3.Text "% Processor " + f;
}
0
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
10 oct. 2005 à 12:07
j'ai bien peur qu'il faille utiliser autant de PerformanceCounter que test...

Sébastien FERRAND
[MVP C#]
0
DDeXTeRR Messages postés 13 Date d'inscription samedi 23 août 2003 Statut Membre Dernière intervention 17 janvier 2010
10 oct. 2005 à 12:20
Merci de repondre aussi vite ;)

Ouaip c'est ce que je me suis dit aussi. D'ailleurs ca marche bien si on a un PerformanceCounter par relevé. Mais sais tu pourquoi ca ne peut pas marcher avec un seul ?
0
Rejoignez-nous