Get current CPU, RAM and Disk drive usage in C#

后端 未结 3 1431
渐次进展
渐次进展 2020-12-05 00:54

How to get the CPU, RAM and Disk drive usage of the system in C# code?

相关标签:
3条回答
  • 2020-12-05 01:18

    Here is a solution which will output disk usage, the total disk percent being used at the time that Timer99 is polled:

     using System;
     using System.Diagnostics;
     using System.Windows;
    
     namespace diskpercent
     {
         public partial class MainWindow : Window
         {
             DispatcherTimer Timer99 = new DispatcherTimer();
             public MainWindow()
             {
                 InitializeComponent();
                 Timer99.Tick += Timer99_Tick; // don't freeze the ui
                 Timer99.Interval = new TimeSpan(0, 0, 0, 0, 1024);
                 Timer99.IsEnabled = true;
             }
             public PerformanceCounter myCounter =
                new PerformanceCounter("PhysicalDisk", "% Disk Time", "_Total");
             public Int32 j = 0;
             public void Timer99_Tick(System.Object sender, System.EventArgs e)
    
             {
                     //Console.Clear();
                 j = Convert.ToInt32(myCounter.NextValue());      
                     //Console.WriteLine(j);
                 textblock1.Text = j.ToString();
             }
         }
     }
    

    and here is a list of common performance counters:

     PerformanceCounter("Processor", "% Processor Time", "_Total");
     PerformanceCounter("Processor", "% Privileged Time", "_Total");
     PerformanceCounter("Processor", "% Interrupt Time", "_Total");
     PerformanceCounter("Processor", "% DPC Time", "_Total");
     PerformanceCounter("Memory", "Available MBytes", null);
     PerformanceCounter("Memory", "Committed Bytes", null);
     PerformanceCounter("Memory", "Commit Limit", null);
     PerformanceCounter("Memory", "% Committed Bytes In Use", null);
     PerformanceCounter("Memory", "Pool Paged Bytes", null);
     PerformanceCounter("Memory", "Pool Nonpaged Bytes", null);
     PerformanceCounter("Memory", "Cache Bytes", null);
     PerformanceCounter("Paging File", "% Usage", "_Total");
     PerformanceCounter("PhysicalDisk", "Avg. Disk Queue Length", "_Total");
     PerformanceCounter("PhysicalDisk", "Disk Read Bytes/sec", "_Total");
     PerformanceCounter("PhysicalDisk", "Disk Write Bytes/sec", "_Total");
     PerformanceCounter("PhysicalDisk", "Avg. Disk sec/Read", "_Total");
     PerformanceCounter("PhysicalDisk", "Avg. Disk sec/Write", "_Total");
     PerformanceCounter("PhysicalDisk", "% Disk Time", "_Total");
     PerformanceCounter("Process", "Handle Count", "_Total");
     PerformanceCounter("Process", "Thread Count", "_Total");
     PerformanceCounter("System", "Context Switches/sec", null);
     PerformanceCounter("System", "System Calls/sec", null);
     PerformanceCounter("System", "Processor Queue Length", null);
    
    0 讨论(0)
  • 2020-12-05 01:21

    Drives

    static void Main(string[] args)
    {
    var drives = DriveInfo.GetDrives();
    foreach (DriveInfo info in drives)
    {
          Console.WriteLine("Name: {0}\nSize: {1}\nDrive Format: {2}", info.Name, info.TotalSize, info.DriveFormat);
    }
     Console.ReadLine();
    }
    
    0 讨论(0)
  • 2020-12-05 01:26

    Please search SO; there are several similiar questions:

    • How to get the CPU Usage C#

    • C#: List all processes and their current memory & CPU consumption?

    • How do I retrieve disk information in C#?

    0 讨论(0)
提交回复
热议问题