static void KeepChecking(object sender, System.ComponentModel.DoWorkEventArgs e) { while (true) { PerformanceCounter pcCpuLoad = new PerformanceCounter("Processor", "% Processor Time", "_Total"); pcCpuLoad.NextValue(); Thread.Sleep(1000); float cpuLoad = pcCpuLoad.NextValue(); //这里如果CPU使用率变化超过多少,主动通知所有客户端 cpuload的范围是0~100 if (System.Math.Abs(LoadBalanceService.CPULoad - cpuLoad) > CPULevelNum) { //通知 LoadBalanceService.SendtoAll("GetServerStatus", cpuLoad.ToString()); } LoadBalanceService.CPULoad = cpuLoad; } }