54 lines
1.5 KiB
C#
54 lines
1.5 KiB
C#
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;
|
|
}
|
|
}
|
|
|
|
|
|
}
|