理由はわかりませんが、多くのコンピュータが次の操作でハングします。
void Init()
{
net1 = new List<PerformanceCounter>();
net2 = new List<PerformanceCounter>();
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")
正常に動作しているようです。
それはなぜですか?