2017-10-17 69 views
-1

我一直在做x次,但今天,它決定不工作。也許我已經失明瞭?一段簡單的代碼:Xamarin:OnTimedEvent()未開火(定時器)

private TextView txt; 
    private Timer _timer; 
    private int seconds; 

    protected override void OnCreate(Bundle bundle) 
    { 
     base.OnCreate(bundle); 
     SetContentView (Resource.Layout.Main); 
     txt = FindViewById<TextView>(Resource.Id.testTextView); 
     seconds = 0; 
     Timer(); 
    } 

    void Timer() 
    { 
     _timer = new System.Timers.Timer(); 
     _timer.Interval = 100; 
     _timer.Elapsed += OnTimedEvent; 
     _timer.Enabled = true; 
     _timer.Start(); 
    } 

    private void OnTimedEvent(object sender, System.Timers.ElapsedEventArgs e) 
    { 
     seconds += 1; 
     CountDown(); 
    } 

    void CountDown() 
    { 
     txt.Text = seconds.ToString(); 
    } 

OnTimedEvent是沒有得到調用。決不。爲什麼?!

+0

現在,它變得越來越奇怪:我不能設置斷點...... –

+0

我在調試。我重新啓動了我的電腦,現在我可以再次設置斷點了! (之前從未發生過這種情況)無論如何:我正在擊中一次斷點。仍然ontimedevent沒有發生...... –

+0

我剛剛目睹的事情:每當我把應用程序在backrgound,然後返回倒計時似乎工作。我只是編輯了問題並設置了倒計時方法。我只希望佈局中的文本每1秒增加1。每當我把應用程序放入後臺,然後返回文本號碼改變。那麼究竟發生了什麼xD –

回答

0

謝謝大家,我發現它: 計時器正在工作,但我不能從UI線程更改UI元素。除非我這樣做:

 RunOnUiThread(() => txt.Text = seconds.ToString()); 

還有我們去:)