PerformanceCounter.NextValue挂起在某些机器上

我不知道为什么,但许多计算机挂起以下操作:

void Init() { net1 = new List(); net2 = new List(); foreach (string instance in new PerformanceCounterCategory("Network Interface").GetInstanceNames()) { net1.Add(new PerformanceCounter("Network Interface", "Bytes Received/sec", instance)); net2.Add(new PerformanceCounter("Network Interface", "Bytes Sent/sec", instance)); } } //Once in 1 second void UpdateStats() { Status.Text = ""; for (int i = 0; i < net1.Count; i++) Status.Text += string.Format("{0}/{1} Kb/sec; ", net1[i].NextValue() / 1024, net2[i].NextValue() / 1024); } 

在某些计算程序完全挂起UpdateStats()第一次调用,其他人遇到100%的CPU负载,但程序工作(缓慢)。 其他计数器,如new PerformanceCounter("Processor", "% Processor Time", "_Total")似乎工作正常。

任何建议为什么会这样?

删除打印机引用有助于消除初始化的挂起

  new PerformanceCounter("Processor", "% Processor Time", "_Total"). 

现在我们得到一个新的错误消息而不是挂起,所以可以跟踪它。 从:

解答打印机驱动程序

我们有两个类似的dell笔记本电脑(一个更新),包括Windows 8,MVSV 2013和IIS Express 8.一个会挂起,一个不会。