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.一个会挂起,一个不会。