using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Text;
|
using System.Threading.Tasks;
|
|
namespace LB_SmartVisionCommon
|
{
|
public class NetworkMonitor
|
{
|
private System.Timers.Timer _timer;
|
|
public event Action<bool> NetworkStatusChanged;
|
|
public void StartMonitoring(int intervalSeconds = 30, string ip = "www.google.com")
|
{
|
_timer = new System.Timers.Timer(intervalSeconds * 1000);
|
_timer.Elapsed += async (s, e) => await CheckNetworkAsync(ip);
|
_timer.Start();
|
}
|
|
public void StopMonitoring()
|
{
|
_timer?.Stop();
|
_timer?.Dispose();
|
}
|
|
private async Task CheckNetworkAsync(string ip = "www.google.com")
|
{
|
var isConnected = await NetworkTester.TestConnectionAsync(ip);
|
NetworkStatusChanged?.Invoke(isConnected);
|
}
|
}
|
}
|