Периодическая проверка подключения устройства с использованием таймера

Нужно реализовать постоянную проверку состояния подключения устройства с некоторым интервалом времени. То есть, есть таймер с заданным временем, по истечению которого должна происходить проверка подключения. Была попытка реализовать это следующим образом: в 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. Каким образом стоит решить эту проблему?


Ответы (0 шт):