为什么不定时启动?

问题描述 投票:2回答:1

这是简单的代码增加一些并显示在一个TextView,但它不工作,我不知道什么是错我的代码?

这里是我的代码:

protected override void OnCreate(Bundle savedInstanceState)
    {
        base.OnCreate(savedInstanceState);

        // Set our view from the "main" layout resource
        SetContentView(Resource.Layout.Main);
        TextView textView = FindViewById<TextView>(Resource.Id.textView1);
        Timer timer1 = new Timer();
        timer1.Interval = 1000;
        timer1.Enabled = true;
        timer1.Start();
        timer1.Elapsed += (object sender, ElapsedEventArgs e) =>
         {
             x++;
             textView.Text = x.ToString();
         };
    }
c# android xamarin xamarin.android
1个回答
2
投票

既然你不使用SynchronizingObject的,System.Timers.Timer正在呼吁对经过的线程池线程,因此你不是UI /主线程(其中UI更新需要执行)上。

因此,使用RunOnUiThread更新事件中的用户界面:

timer1.Elapsed += (object sender, ElapsedEventArgs e) =>
{
    x++;
    RunOnUiThread(() => button.Text = x.ToString());
};
© www.soinside.com 2019 - 2024. All rights reserved.