c#获取电脑的内存按照%显示,不使用PerformanceCounter ramCounter = new PerformanceCounter("Memory", "Available MBytes");
时间: 2023-07-19 07:20:18 浏览: 189
你可以使用 `System.Diagnostics` 命名空间中的 `Process` 类来获取计算机的内存使用情况。以下是一个示例代码:
```csharp
using System.Diagnostics;
// 获取内存使用率
var pcProcess = new PerformanceCounter("Process", "% Processor Time", Process.GetCurrentProcess().ProcessName);
var pcMemory = new PerformanceCounter("Process", "Working Set - Private", Process.GetCurrentProcess().ProcessName);
var currentProcess = Process.GetCurrentProcess();
var memoryUsage = 100 * pcMemory.NextValue() / currentProcess.WorkingSet64;
Console.WriteLine($"内存使用率:{memoryUsage}%");
```
该代码将使用 `PerformanceCounter` 获取当前进程的 CPU 使用率和内存使用情况。然后,它将计算内存使用率并将其输出到控制台。
需要说明的是,该方法计算的是当前进程的内存使用率,如果你想获取整个计算机的内存使用率,可以使用 `System.Diagnostics` 命名空间中的 `MemoryMetrics` 类和 `PerformanceCounter` 类。但是,这种方法需要管理员权限,因为它需要读取系统性能计数器。如果你无法获取管理员权限,那么使用 `Process` 类获取当前进程的内存使用率可能是更好的选择。
阅读全文