示例#1
0
 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;
     }
 }