Ergebnis 1 bis 5 von 5
  1. #1
    Sobig Wurm
    Registriert seit
    30.03.2009
    Beiträge
    212

    Standard [c#] Auslastung der Prozessorkerne ermittleln

    HI,

    ich würde gerne die Auslastung jedes Kernes(z.B. bei nem Dualcore) ermitteln.
    Wie geht das denn unter C#?

  2. #2
    Trojaner
    Registriert seit
    04.02.2010
    Beiträge
    65

    Standard

    Hi,
    ich hab da nen ungetesteten Snippet:
    public uint CPUSpeed()
    {
    ManagementObject Mo = new ManagementObject("Win32_Processor.DeviceID='CPU0'" );
    uint sp = (uint)(Mo["CurrentClockSpeed"]);
    Mo.Dispose();
    return sp;
    }
    Ich hätte mal versucht Win32_Processor.DeviceID='CPU0' in CPU1, CPU2 und CPU3 in nem Try-Catch Block zu selecten...
    Bitte gib nen kurzes Feedback ob das klappt

  3. #3
    Sobig Wurm
    Registriert seit
    30.03.2009
    Beiträge
    212

    Standard

    Ohne dir zu nahe zu treten zu wollen, aber vlt. lags auch an meiner Beschreibung... aber was dein Snippet macht ist die "Geschwindigkeit" auszugeben und das hast nicht immer was mit der Auslastung zu tun.
    Was ich zur Auslastung gefunden habe ist das(Was aber nicht für alle Kerne spricht scheinbar):
    C# - CPU Auslastung ermitteln

    edit:
    Wer lesen kann ist besser dran
    Bitte closen habs gefunden^^

  4. #4
    Trojaner
    Registriert seit
    04.02.2010
    Beiträge
    65

    Standard

    Ja sry mein Fehler...
    Für alle anderen:
    C# - CPU Last von mehreren CPUs überwachen

  5. #5
    Sobig Wurm
    Registriert seit
    30.03.2009
    Beiträge
    212

    Standard

    Hab das ganze jetzt mal versucht umzusetzen:
    Code:
     private void InitialisierePerformanceCounter(int cores) // Initialisieren
            {
                cpuCounter = new PerformanceCounter[cores];
    
                int i = 0;
                while (i < cores)
                {
                    cpuCounter[i] = new PerformanceCounter();
                    cpuCounter[i].CategoryName = "Processor";
                    cpuCounter[i].CounterName = "% Processor Time";
                    cpuCounter[i].InstanceName = i.ToString();
                    i++;
                }
    
                        }
    
            private float GetCPUusage(int core) // Liefert die aktuelle Auslastung zurück
            {
                return cpuCounter[core].NextValue();
            }
    Dann die Progressbaren:

    Code:
    //Timertick
    ProgressBar[] prog = new ProgressBar[8];
                prog[0] = progressBar1;
                prog[1] = progressBar2;
                prog[2] = progressBar3;
                prog[3] = progressBar4;
    
                int i = 0;
                while(i < timeranz){//timeranz  = 4(kommt aus einem anderen Codeteil, deswegen reicht es wenn man weiß Wert ? 4 ;)
    
                InitialisierePerformanceCounter(timeranz);
                prog[i].Value = Convert.ToInt32(GetCPUusage(i));
                listBox1.Items.Add(GetCPUusage(i).ToString());
                prog[i].Update();
                i++;
                }
    Hab momentan nur 4 Kerne deswegen auch nur 4Progressbar's
    Weiß jemand wo der Fehler liegen könnte, warum die Progressbar's ständig einen Wert von 0 anzeigen(ebenso die Listbox, die ich eingebaut habe um zu sehen ob es nicht doch an den Progressbar's liegt)

    Hab die CPUcounter noch mal manuell initialisiert, auch kein Erfolg.
    Komisch war als ich das Ergebnis in einer Messagebox mit ausgegeben habe, also das hier:
    private float GetCPUusage(int core) // Liefert die aktuelle Auslastung zurück
    {
    MessageBox.Show(
    cpuCounter[core].NextValue().toString());
    return cpuCounter[core].NextValue();
    }

    Da haben sich die Werte in der Progressbar verändert, aber fragt jetzt nicht wie...
    Ka, glaube aber auch das die Werte falsch waren.
    Stimmt vlt. an der cpucounter Syntax was nicht?
    Geändert von !sniper (24.07.2010 um 16:41 Uhr) Grund: Automerged Doublepost

Ähnliche Themen

  1. CSS-Problem mit Core Auslastung
    Von Ne0dym im Forum PC Modding/Tuning
    Antworten: 9
    Letzter Beitrag: 22.07.2010, 16:41
  2. [C#] Prozessorkerne verwalten
    Von cocacola im Forum .NET Sprachen - Techniken
    Antworten: 2
    Letzter Beitrag: 07.07.2009, 07:11
  3. Zu viel Ram auslastung unter Windoof XP
    Von FireWHV07 im Forum Windows
    Antworten: 4
    Letzter Beitrag: 06.05.2009, 09:25

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •