Ксамарин.Формы.Устройство.startTimer — кажется, есть «задержка» от взаимодействия с пользователем

#android #timer

Вопрос:

У меня есть простой сценарий для приложения Xamarin Forms (Android и iOS):

  1. пользователь нажимает кнопку, чтобы начать перемещение фигуры
  2. пользователь снова нажимает на кнопку, чтобы фигура перестала двигаться

Когда происходит #1, я запускаю таймер:

         Device.StartTimer(TimeSpan.FromMilliseconds(25), () =>
        {
            switch (Phase)
            {
                case Moving:
                    // logic to change the shape's position on the canvas
                    _canvas.InvalidateSurface();
                    return true;
                case Stopped:
                    return false;
            }
        });
 

В событии «Щелчок» моей кнопки я установил фазу либо «Перемещение», либо «Остановка».

Что я замечаю, так это то, что с момента нажатия кнопки до появления результатов наблюдается небольшая задержка/задержка. Это должно быть немедленно — как только пользователь нажимает на кнопку, фигура должна остановиться. Вызывает ли таймер задержку, когда дело доходит до ввода данных пользователем? Я не замечаю такой большой задержки, если увеличу интервал с 25 миллисекунд до 100 миллисекунд.

Я вижу такое поведение, используя эмуляторы, а также реальное устройство Android.