简单的代码会增加一个数字并在texView中显示它,但是它不起作用,我不知道我的代码有什么问题...
这是我的代码:
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();
};
}
答案 0 :(得分:2)
由于未使用SynchronizingObject,System.Timers.Timer
在线程池线程上调用了Elapsed,因此您不在UI / Main线程上(需要执行UI更新)。
因此,在事件中使用RunOnUiThread
更新您的UI:
timer1.Elapsed += (object sender, ElapsedEventArgs e) =>
{
x++;
RunOnUiThread(() => button.Text = x.ToString());
};