将性能计数器的值分配给 WPF 应用程序中的标签
本文关键字:应用程序 WPF 标签 分配 性能计数器 | 更新日期: 2023-09-27 18:36:52
我有一个 WPF 应用程序,我想从应用程序(报告自身的应用程序)中提供 CPU 使用情况详细信息。我有一个工作控制台应用程序,可以让我监视任何应用程序,我想知道是否可以使用相同的逻辑PerformanceCounter
使用来自PerformanceCounter
的信息更新Label
或TextBox
。
CPU 使用率代码 - 控制台应用程序:
static void Main(string[] args)
{
Console.WriteLine("Please enter a Application to monitor");
appName = Console.ReadLine();
PerformanceCounter myAppCPU =
new PerformanceCounter("Process", "% Processor Time", appName, true);
Console.WriteLine("Press the any key to stop ... 'n");
if (myAppCPU != null)
{
while (!Console.KeyAvailable)
{
double pct = myAppCPU.NextValue();
Console.WriteLine("CPU % = " + pct);
Thread.Sleep(2500);
}
}
else
Console.WriteLine("No Process found");
}
//Create the Performance Counter for the current Process
PerformanceCounter myAppCPU = new PerformanceCounter("Process", "% Processor Time", Process.GetCurrentProcess().ProcessName, true);
public MainWindow()
{
InitializeComponent();
//Initialize a timer
System.Windows.Threading.DispatcherTimer dispatcherTimer = new System.Windows.Threading.DispatcherTimer();
dispatcherTimer.Tick += DispatcherTimer_Tick;
//Check the CPU every 3 seconds
dispatcherTimer.Interval = new TimeSpan(0, 0, 3);
//Start the Timer
dispatcherTimer.Start();
}
//Every 3 seconds the timer ticks
private void DispatcherTimer_Tick(object sender, EventArgs e)
{
//Write the result to the content of a label (CPULabel)
CPULabel.Content = $"CPU % = {myAppCPU.NextValue()}";
}
使用Process.GetCurrentProcess().ProcessName
您可以获取进程名称您的应用程序。
创建一个每 x 秒滴答一次的计时器。在 Timer 事件中,读取下一个 CPU 值并将其直接写入标签(如我的示例)或绑定到视图的属性。