这是我上一个question的下一步。
。我正在创建一个C#WinForm应用程序,该应用程序将显示给定进程(例如,进程名称为chrome.exe)的网络活动(接收的字节数/发送的字节数)和该进程生成的兆位/秒的速度。 >
虽然使用性能计数器
IO Read Bytes/sec
和IO Read Bytes/sec
显示I / O读取和写入字节,而不是'发送和接收字节'
PS:I / O计数由进程生成的所有文件,网络和设备I / O字节。但是,我只希望由特定进程生成的网络字节。
我只想检索已接收的字节和已发送的字节。但是,不知道使用什么计数器来获取进程的这些字节。
我已经为此目的搜索了这些链接,但没有用:
这里是Process的Performance Counter代码尝试过:
如何仅获取由进程为网络活动生成的已接收和已发送字节。PerformanceCounter bytesReceived = new PerformanceCounter("Process", "IO Read Bytes/sec"); PerformanceCounter bytesSent = new PerformanceCounter("Process", "IO Write Bytes/sec"); string ProcessName = "chrome"; bytesReceived.InstanceName = ProcessName; bytesSent.InstanceName = ProcessName;
问题:
这是我上一个问题的下一步。我正在创建一个C#WinForm应用程序,该应用程序将显示给定进程的网络活动(接收的字节数/发送的字节数)(例如:进程名称的...
正如评论中已经提到的,我不相信有一种方法可以使用PerformanceCounter
类来实现。由于它使用Windows的内置性能计数器,因此可以通过使用typeperf
命令查询已安装计数器的整个列表来进行验证。在我的本地计算机上,这产生了大约3.200个不同的计数器,我通过这些计数器来验证我的主张。实际上,有typeperf
个计数器用于网络发送/接收(即使对于特定的网络接口/适配器或处理器),但是它们都不能针对特定的进程或进程系列进行过滤。