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 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); } } }