PerformanceCounter

25/12/2007 - 14:54 von Thomas Kehl | Report spam
Hallo.
Ich benutze in meiner Applikation einen PerformanceCounter. Dieser wird
folgendermassen erstellt:

System.Diagnostics.PerformanceCounte cpuUsage = new
System.Diagnostics.PerformanceCounter();
cpuUsage.CategoryName = "Prozessor";
cpuUsage.CounterName = "Prozessorzeit (%)";
cpuUsage.InstanceName = "_Total";

Ich frage mich nun, ob das auf allen Windows-Systemen funktioniert. Vor
allem auch auf englischsprachigen. Oder muss ich diesbezüglich noch was tun,
damit das u.a. auch auf einglischsprachigen Windowssystem funktioniert?

Beste Grüsse, Thomas
 

Lesen sie die antworten

#1 Frank Dzaebel
25/12/2007 - 20:19 | Warnen spam
Hallo Thomas,

Ich benutze in meiner Applikation einen PerformanceCounter. [...]
cpuUsage.CategoryName = "Prozessor";
cpuUsage.CounterName = "Prozessorzeit (%)";
Ich frage mich nun, ob das auf allen Windows-Systemen funktioniert. Vor
allem auch auf englischsprachigen.



Also, das wird so *nicht* auf den englischsprachlichen funktionieren!
Am saubersten testest Du die Existenz der
lokalisierten CounterName/CounterCategory-
Eigenschaft der PerformanceCounter (ggf. auch im Setup).

[PerformanceCounterCategory.CounterExists-Methode (System.Diagnostics)]
http://msdn2.microsoft.com/de-de/li...xists.aspx

[Der Windows Performance Counter (Gastbeitrag tecCHANNEL)]
http://www.microsoft.com/germany/te...00515.mspx

Denn CategoryName oder CounterName können lokalisiert sein:
"categoryName and counterName have been localized into different languages":

[PerformanceCounter Constructor (String, String) (System.Diagnostics)]
http://msdn2.microsoft.com/en-us/li...ssx8x.aspx

Beachte auf den anderen Betriebssystemen auch, das
ggf. (etwa Vista) Berechtigungen für "Performance Monitor
Users group", UAC Control (->Manifest) bzw. administrative
Berechtigungen nötig sein können, wobei dies natürlich auch
für XP gilt, nur dort macht man (leider) oft noch Admin-Apps.



Oder muss ich diesbezüglich noch was tun, damit das u.a. auch auf
einglischsprachigen Windowssystem funktioniert?



ja, dort heisst es nàmlich:
Process\\% Processor Time
im Gegensatz zum deutschen:
Prozesse\ Prozessorzeit (%)

am Anfang angeführte Maßnahmen sollten durchgeführt werden.


ciao Frank
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET

Ähnliche fragen