Итак, я создаю приложение UWP на Windows 10 IoT Core
и Raspberry Pi 3
. Теперь я хочу иметь часы реального времени (без перегрузки всего), чтобы получить точное время (полученное от GPS, но только от системы).
Что я сделал сейчас, так это создал Task с бесконечным циклом while, чтобы получить время и поместить его на метку... Но я не могу понять, почему метка не обновляется в этом цикле while, но все же он обновляется при загрузке страницы. Код, который я использую, можно найти ниже:
public sealed partial class Tripmaster : Page
{
public Tripmaster()
{
this.InitializeComponent();
lbl_clock.Text = DateTime.Now.ToString("HH:mm:ss");
start_clock();
btn_back.Click += Btn_back_Click;
}
private void start_clock()
{
// Init the clock and start the thread for the clock.
Task.Run(() => {
while (true)
{
lbl_clock.Text = DateTime.Now.ToString("HH:mm:ss");
Debug.WriteLine(DateTime.Now.ToString("HH:mm:ss"));
Task.Delay(500);
}
});
}
private void Btn_back_Click(object sender, RoutedEventArgs e)
{
this.Frame.Navigate(typeof(MainPage));
}
}
Таким образом, lbl_clock.Text = DateTime.Now.ToString("HH:mm:ss");
работает, но больше никогда не обновляется и падает в цикле while. Есть идеи, как я могу сделать так, чтобы метки обновлялись автоматически и (почти) в реальном времени?
Если я просто закомментирую lbl_clock.Text = DateTime.Now.ToString("HH:mm:ss");
и отлажу его (путем написания строки отладки), это сработает, что я могу сделать? Это действительно важно для этого проекта.