C# android xamarin计时器不工作

C# android xamarin计时器不工作,c#,android,xamarin,timer,xamarin.android,C#,Android,Xamarin,Timer,Xamarin.android,我正在使用c#在xamarin中制作一个android应用程序,并使用以下代码重复此任务,但不幸的是,代码工作不正常 protected override void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); Timer timer= new Timer(); SetContentView(Resource

我正在使用c#在xamarin中制作一个android应用程序,并使用以下代码重复此任务,但不幸的是,代码工作不正常

protected override void OnCreate(Bundle savedInstanceState)
    {
         base.OnCreate(savedInstanceState);
                Timer timer= new Timer();
                SetContentView(Resource.Layout.Home);
                timer.Enabled = true;
                timer.Interval = 2000;
                timer.Elapsed += Timer_Elapsed;
                timer.Start();
                }

            private void Timer_Elapsed(object sender, ElapsedEventArgs e)
            {
                Toast.MakeText(this, "asasasas", ToastLength.Long).Show();
            }

async
timer回调方法
timer\u expased
所有UI调用都需要通过主线程,否则将导致线程异常

用RunOnUiThread像下面的例子一样包装吐司

private void Timer_Elapsed(object sender, ElapsedEventArgs e)
{
   RunOnUiThread(()=>Toast.MakeText(this, "asasasas", ToastLength.Long).Show();)
}

非常感谢@iamlcarus,还有一个问题,如果我想在五秒钟后将任何逻辑i-e插入db中的记录,我还需要使用RunOnUiThread吗???@CodeBank?只是UI调用需要使用RunOnUiThread执行。所有其他代码可以自由放置在RunOnUiThread块的外部(或内部)