我有一個僅用于具有兩個標簽的 Android 的應用程式。它們都只是不同格式的倒計時表示。當我通過按鈕手動更新標簽時,按下計算每個更新標簽的剩余時間。我現在添加了一個 System.Timers.Timer,它設定為同時更新兩個標簽;但是,只有第二個(編碼)標簽被更新,無論我在代碼中作為第二個。現在,當我按下按鈕時也是如此。我錯過了什么?相關代碼如下:
public MainPage()
{
InitializeComponent();
t.Interval = 1000;
t.Elapsed = t_Tick;
t.AutoReset = true;
t.Enabled = true;
calc(DateTime.Now);
}
private void OKbtnClick(object sender, EventArgs e)
{
calc(DateTime.Now);
}
public void calc(DateTime dt)
{
TimeSpan timeSpan = departure.Subtract(dt);
opt = String.Format("Days: {0:N0}", timeSpan.TotalDays);
opt = String.Format("\nHours: {0:N0}", timeSpan.TotalHours);
opt = String.Format("\nMinutes: {0:N0}", timeSpan.TotalMinutes);
opt = String.Format("\nSeconds: {0:N0}", timeSpan.TotalSeconds);
txtOutput.Text = opt;
txtCountdown.Text = timeSpan.ToString(@"d\:hh\:mm\:ss");
}
private void t_Tick(object sender, ElapsedEventArgs e)
{
calc(e.SignalTime);
}
uj5u.com熱心網友回復:
請將您的代碼放入Device.BeginInvokeOnMainThread:
public void calc(DateTime dt)
{
System.DateTime departure = new System.DateTime(2022, 2, 2, 22, 15, 0);
TimeSpan timeSpan = departure.Subtract(dt);
opt = String.Format("Days: {0:N0}", timeSpan.TotalDays);
opt = String.Format("\nHours: {0:N0}", timeSpan.TotalHours);
opt = String.Format("\nMinutes: {0:N0}", timeSpan.TotalMinutes);
opt = String.Format("\nSeconds: {0:N0}", timeSpan.TotalSeconds);
Device.BeginInvokeOnMainThread(() => {
txtOutput.Text = opt;
txtCountdown.Text = timeSpan.ToString(@"d\:hh\:mm\:ss");
});
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/415471.html
標籤:
