none
CPU ukazatel

    Dotaz

  • Dobrý den,
    Mám takový dotaz. Hledám nějaké jednoduché řešení výpisu CPU v procentech a popřípadě i do progress baru, ale to už si kdyžtak zařídím sám. A možnost jak jej vložit do vlákna, aby při každém volání se nezatěžoval počítač.

    Děkuji...
    8. srpna 2009 15:15

Odpovědi

  • Už jsem tento problém vyřešil a jestli někdo neví jak zde nabízím snad podrobný návod:

    zaprvé do dokumentu winForm jsem vložil Timer a PerformanceCounter.
    Poté stačí vložit příslušný progressBar a nějaký label, kde se úkáží procenta.

    Pak stačí nastavit Timer a do PerformanceCounteru zapsat:
    CategoryName: Processor
    CounterName: % Processor Time
    InstanceName: _Total
    +
    Kód zapíši:

    private void timer1_Tick(object sender, EventArgs e)
            {
                progressBar1.Value = (int)(performanceCounter1.NextValue());
                label1.Text = progressBar1.Value.ToString() + "%";
            }

    a Výsledný progressbar s procenty nám úspěšně funguje... :)
    • Označen jako odpověď Dusa 11. srpna 2009 16:46
    11. srpna 2009 16:45

Všechny reakce

  • Skus pozret triedu System.Diagnostics.Process a vlastnost Process..::.TotalProcessorTime, zrataj to pre vsetky procesy a mas vysledok. Aj ked toto riesenie nie je najoptimalnejsie, ale je jednoduche.

    k
    11. srpna 2009 8:50
  • Už jsem tento problém vyřešil a jestli někdo neví jak zde nabízím snad podrobný návod:

    zaprvé do dokumentu winForm jsem vložil Timer a PerformanceCounter.
    Poté stačí vložit příslušný progressBar a nějaký label, kde se úkáží procenta.

    Pak stačí nastavit Timer a do PerformanceCounteru zapsat:
    CategoryName: Processor
    CounterName: % Processor Time
    InstanceName: _Total
    +
    Kód zapíši:

    private void timer1_Tick(object sender, EventArgs e)
            {
                progressBar1.Value = (int)(performanceCounter1.NextValue());
                label1.Text = progressBar1.Value.ToString() + "%";
            }

    a Výsledný progressbar s procenty nám úspěšně funguje... :)
    • Označen jako odpověď Dusa 11. srpna 2009 16:46
    11. srpna 2009 16:45
  • dobrý den, snažím se udělat přesně to co vy, nastavil jsem všechno stejně jako vy, ale nefunguje mi to. nezobrazí se žádná hodnota, pokud vynechám ten timer, a udělám to aby to zobrazilo při kliknutí buttonu, tak to vždycky vypíše 100%

    timer jsem nijak nenastavoval

    děkuji za odpověď
    17. února 2010 16:02
  • Cus....zkoušel jsem to podle tveho navodu a přeplo mě to do "Form1.Designer.cs" a žlutě označí tento řádek ((System.ComponentModel.ISupportInitialize)(this.performanceCounter1)).EndInit(); (a u thoto řádku se objěví taková tabulka s napovědou či co to je a nahoře je napsáno "Vstupní řetězec nemá správný formát" Nevíte kde dělám chybu ?
    13. dubna 2010 16:11
  • Cus....zkoušel jsem to podle tveho navodu a přeplo mě to do "Form1.Designer.cs" a žlutě označí tento řádek ((System.ComponentModel.ISupportInitialize)(this.performanceCounter1)).EndInit(); (a u thoto řádku se objěví taková tabulka s napovědou či co to je a nahoře je napsáno "Vstupní řetězec nemá správný formát" Nevíte kde dělám chybu ?
    13. dubna 2010 16:11
  • Měl jsem podobný problém.. doporučuji performanceCounter nenastavovat programově, ale ručně.

    V designu v toolBoxu je komponenta performance Counter a tu vložte do formu obdobně jako Timer. Poté nastavte její části ručně.

    Chyba je způsobena pravděpodobně odlišnostmi jazyka procesoru... Někdo to má v češtině, a jiný ne.

    Ruční nastavení nám povolí pouze to, co opravdu funguje.

     

    Snad rada pomohla... :)

    13. dubna 2010 18:59
  • Zdravím, pravděpodobně jsi něco v kódu smazal ručně.. a program si stále myslí, že to tam je.

    Zkus v design.cs smazat uplně všechny řádky, kde se objevuje performaceCounter a poté jej opět vložit.

    Chyba by měla být vyřešena. Není problém v návodu, ale v tvojí práci..

    časem na to přijdeš jak Vc# funguje... ;) tohle je uplně běžný...

    13. dubna 2010 19:03
  • Zdravím, teď jsem zkoušel udělat program podle původního návodu a vše mi funguje. Komponenty jsem nepsal ručně, ale na formulář jsem si je přidal z ToolBoxu a vše u nich nastavil podle návodu. Pokud se někomu stává, že se progressBar nenastavuje podle zatížení CPU, tak jste nespíše zapoměli u Timeru v Properties nastavit Enable na hodnotu true. Já ji měl defaultně na false.
    17. července 2010 21:17