使用PerformanceCounterCategory類,PerformanceCounter類。
獲取Network Interface性能計數器實例。
PerformanceCounterCategory category = new PerformanceCounterCategory("Network Interface");
獲取速度
adapter.dlCounter = new PerformanceCounter("Network Interface", "Bytes Received/sec", name);
在調試中:PerformanceCounterCategory category = new PerformanceCounterCategory("Network Interface");
語句報錯:“無法加載計數器名稱數據,因為從注冊表讀取的索引“”無效。”
解決方法:
先查看性能監視器( 命令:perfmon ), 會發現確實有錯。
cmd 輸入: lodctr /r 即可修復。

1 try 2 { 3 #region 輸出全部"categoryName性能計數器類別名稱" 4 PerformanceCounterCategory[] ArrayCategories = PerformanceCounterCategory.GetCategories(); 5 foreach (var tempCategories in ArrayCategories) 6 { 7 Console.WriteLine(tempCategories.CategoryName); 8 } 9 10 Console.WriteLine("=============================================="); 11 #endregion 12 //性能計數器關聯的性能計數器類別(性能對象)的名稱 13 string netCategoryName = "Network Interface"; 14 PerformanceCounterCategory category = new PerformanceCounterCategory(netCategoryName); 15 string[] ArrayInstanceNames = category.GetInstanceNames(); 16 //性能對象實例 17 foreach (var tempInstanceName in ArrayInstanceNames) 18 { 19 Console.WriteLine(tempInstanceName); 20 // This one exists on every computer. 21 if (tempInstanceName == "MS TCP Loopback interface") 22 continue; 23 24 PerformanceCounter[] ArrayCounters = category.GetCounters(tempInstanceName); 25 #region 輸出全部"categoryName性能計數器類別名稱" 26 foreach (var tempCounters in ArrayCounters) 27 { 28 Console.WriteLine(tempCounters.CounterName); 29 } 30 Console.WriteLine("=============================================="); 31 #endregion 32 // Create an instance of NetworkAdapter class, and create performance counters for it. 33 NetworkAdapter adapter = new NetworkAdapter(tempInstanceName); 34 //categoryName性能計數器類別名稱,counterName計數器名稱,instanceName性能對象實例名稱 35 adapter.dlCounter = new PerformanceCounter(netCategoryName, "Bytes Received/sec", tempInstanceName); 36 adapter.ulCounter = new PerformanceCounter(netCategoryName, "Bytes Sent/sec", tempInstanceName); 37 this.adapters.Add(adapter); // Add it to ArrayList adapter 38 } 39 } 40 catch (Exception e) 41 { 42 throw e; 43 }
參考:http://blog.csdn.net/luols/article/details/5844061
http://blog.csdn.net/yenange/article/details/47831143
http://www.cnblogs.com/xh831213/archive/2008/06/12/1218234.html