Ich schreibe ein Programm, das verschiedene Ressourcen des Computers überwacht, wie CPU-Auslastung und so weiter. Ich möchte auch die GPU-Auslastung (die GPU-Last, nicht die Temperatur) überwachen.Wie kann ich die GPU-Auslastung lesen?
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Diagnostics;
using DannyGeneral;
namespace CpuUsage
{
public partial class Form1 : Form
{
private bool processEnded;
private Process[] processList;
private string timeStarted;
private string timeEnded;
private List<float> processValues;
private bool alreadyRun;
private DateTime dt;
private DateTime dt1;
private PerformanceCounter theCPUCounter;
private PerformanceCounter theMemCounter;
private PerformanceCounter specProcessCPUCounter;
private float cpuUsage;
private float memUsage;
private List<float> Values;
public Form1()
{
InitializeComponent();
processEnded = false;
processList = Process.GetProcesses();
for (int i = 0; i < processList.Count(); i++)
{
listView1.Items.Add(processList[i].ProcessName);
}
processValues = new List<float>();
alreadyRun = false;
dt = DateTime.Now;
Values = new List<float>();
theCPUCounter = new PerformanceCounter("Processor", "% Processor Time", "_Total");
theMemCounter = new PerformanceCounter("Memory", "Available MBytes");
specProcessCPUCounter = new PerformanceCounter("Process", "% Processor Time", Process.GetCurrentProcess().ProcessName);
Logger.Write("The Program Started At *** " + DateTime.Now.ToShortTimeString());
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void timer1_Tick(object sender, EventArgs e)
{
memUsage = theMemCounter.NextValue();
label1.Text = memUsage.ToString();
Logger.Write("Memory Usage " + memUsage.ToString());
cpuUsage = this.theCPUCounter.NextValue();
label2.Text = cpuUsage.ToString();
Logger.Write("Cpu Usage " + this.cpuUsage.ToString());
Values.Add(cpuUsage);
isProcessRunning();
if (alreadyRun == true)
{
processValues.Add(cpuUsage);
}
}
Bei zukünftigen Fragen sollten Sie eine kleinere Probe mit nur relevantem Code bereitstellen. Ihr aktueller hat viel zu viele UI-bezogene Sachen, wo einfach 'Console.Write (" CPU-Auslastung: {0} ", neuer PerformanceCounter (" Prozessor "," Prozessorzeit% "," _Total "); .NextValue()) würde ausreichen. –