using System.Threading; namespace HSUCO_Server_Monitoring { public class Worker { public delegate void MessageHandler(MessageSender sender, int from, StatusResult result); public event MessageHandler UpdateMessage; private bool loop = true; private Config _config; public Worker(Config config) { _config = config; } public void Start_NVR() { StatusChecker statusChecker = new StatusChecker(); while (loop) { for (int i = 0; i < _config.NVR.Count; i++) { StatusResult result = statusChecker.Check(_config.NVR[i].IpAddress); UpdateMessage(MessageSender.NVR, i,result); } Thread.Sleep(_config.NVR_DelayTime); } } public void Start_CCTV() { int workerCount = _config.CCTV.Count / 50; StatusChecker statusChecker = new StatusChecker(); while (loop) { for (int i = 0; i < _config.CCTV.Count; i++) { StatusResult result = statusChecker.Check(_config.CCTV[i].IpAddress); UpdateMessage(MessageSender.CCTV, i, result); } Thread.Sleep(_config.CCTV_DelayTime); } } public void End() { loop = false; } } }