【发布时间】:2019-05-02 18:54:29
【问题描述】:
如何在 C# 中获取特定进程的磁盘使用率 (MB/s)?
我可以像这样获得 CPU 使用率和 RAM 使用率:
var cpu = new PerformanceCounter("Process", "% Processor Time", ProcessName, true)
var ram = new PerformanceCounter("Process", "Working Set - Private", ProcessName, true);
Console.WriteLine($"CPU = {cpu.NextValue() / Environment.ProcessorCount} %");
Console.WriteLine($"RAM = {ram.NextValue() / 1024 / 1024} MB");
但我找不到与磁盘使用相关的任何内容。
如任务管理器中所示:
【问题讨论】:
-
在此处查看每个进程的 PerformanceCounters 列表:msdn.microsoft.com/en-us/library/ms804621.aspx 您可能对其中一个或多个与 I/O 相关的内容感兴趣(取决于您究竟需要/想要什么)跨度>
-
似乎最接近的计数器是“IO Data Bytes/sec”,但它汇总了来自网络、设备和“文件”(磁盘)I/O 的流量。到目前为止,我发现的其他解决方案都太过分了。我会坚持这个。