Периодическая проверка подключения устройства с использованием таймера
Нужно реализовать постоянную проверку состояния подключения устройства с некоторым интервалом времени. То есть, есть таймер с заданным временем, по истечению которого должна происходить проверка подключения. Была попытка реализовать это следующим образом: в OnAppearing создаётся таймер, к которому добавлен обработчик события Elapsed:
protected override void OnAppearing()
{
base.OnAppearing();
System.Timers.Timer timer = new System.Timers.Timer(500);
timer.Elapsed += Timer_Elapsed;
timer.Enabled = true;
}
В обработчике события происходит следующая проверка:
private void Timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
var drivers = FindAllDrivers(usbManager);
var driver = drivers.Where(d => d.Device.VendorId == DEVICE_VENDOR_ID && d.Device.ProductId == DEVICE_PRODUCT_ID).FirstOrDefault();
if (driver == null)
{
// Здесь происходит обновления визуала приложения
}
else
{
ConnectToDevice();
// Здесь так же происходит обновления визуала приложения
}
}
Но я столкнулся с проблемой того, что постоянное возникновение события не позволяет нормально выполняться коду внутри тела if/else. Каким образом стоит решить эту проблему?