Example #1
0
 static void ReplyThreadLoop()
 {
    while (true)
    {
       if (_clientProcIds.Count > 0)
       {
          lock (_syncLock)
          {
             var cpu = getCurrentCpuUsage();
             var ram = getAvailableRAM();
             foreach (var client in _clientProcIds)
             {
                var response = new ResponseMessage(client.Value.Item1);
                if ((CounterType.CPU & client.Value.Item2) == CounterType.CPU)
                {
                   var reply = new CounterData() { Type = CounterType.CPU, Value = cpu };
                   response.SetBody<CounterData>(reply);
                   IPCService.Instance.SendReply(response.Header.RequestHeader.ProcessID.ToString(), response);
                }
                if ((CounterType.MEMORY & client.Value.Item2) == CounterType.MEMORY)
                {
                   var reply = new CounterData() { Type = CounterType.MEMORY, Value = ram };
                   response.SetBody<CounterData>(reply);
                   IPCService.Instance.SendReply(response.Header.RequestHeader.ProcessID.ToString(), response);
                }
             }
          }
       }
       Thread.Sleep(1000);
    }
 }