Таймер Xamarin Forms не показывает код запуска перед таймером - PullRequest
0 голосов
/ 19 июня 2020

Может ли кто-нибудь сказать мне, почему этот код не работает?

введите описание изображения здесь

Random rnd = new Random();

    public PlayGame()
    {
        InitializeComponent();
        Stopwatch stopwatch = Stopwatch.StartNew();
        BackgroundColor = Color.Blue;
        while (true)
        {
            if (stopwatch.ElapsedMilliseconds >= rnd.Next(1000,5000))
            {
                break;
            }
            System.Threading.Thread.Sleep(1); 
        }

        BackgroundColor = Color.Red;
    }

Что я ожидаю , чтобы увидеть, что цвет фона новой страницы синий, и через 1-5 секунд он должен стать красным.

What I на самом деле видите, когда я нажимаю кнопку, которая должна вести на эту новую страницу, она не показывает синий фон - он просто приостанавливается на 1-5 секунд и сразу становится красным.

Кто-нибудь знает почему?

1 Ответ

0 голосов
/ 19 июня 2020

Если вы хотите изменить цвет фона с синего на красный через 5 секунд.

 public partial class PlayGame : ContentPage
    {
        public PlayGame ()
        {
            InitializeComponent();
        }

        protected override void OnAppearing()
        {
            base.OnAppearing();
            BackgroundColor = Color.Blue;

            Device.StartTimer(TimeSpan.FromSeconds(5), () =>
            {
                BackgroundColor = Color.Red;

                return false; 
            });
        }

    }
...