Как отобразить часы с текущим временем в приложении Windows Core IoT?
Я пытаюсь создать приложение IoT для Windows 10, работающее без головы на Raspberry Pi 2. Все настроено правильно, и я могу отлаживать свое приложение из Visual Studio, используя Raspberry Pi в качестве удаленного компьютера для отладки.
Теперь я хочу добавить часы на страницу приложения, но не могу понять, как обновлять отображаемое время. В простом старом C# я бы использовал BackgroudWorker или что-то подобное для сохранения текущего отображаемого времени, но этот тип недоступен в UWP.
Я изучал "Создание и регистрация фоновой задачи" в MSDN, но это кажется слишком сложным, просто чтобы иметь возможность обновлять время отображения.
Поэтому мой вопрос: как я могу - самым простым возможным способом - создать дисплей часов, который обновляется каждый раз, когда тикает время?
1 ответ
Если ваше приложение работает без заголовка, вам придется установить данные на устройство отображения (ЖК-дисплей, светодиоды и т. Д.). В приложении с заголовком вы будете использовать страницу XAML для отображения часов. Вы можете использовать таймер, чтобы получать уведомления каждый раз, когда происходит.
Объявление таймера
ThreadPoolTimer _clockTimer = null;
Таймер инициализации
_clockTimer = ThreadPoolTimer.CreatePeriodicTimer(_clockTimer_Tick, TimeSpan.FromMilliseconds(1000));
Таймерное событие
private void _clockTimer_Tick(ThreadPoolTimer timer)
{
//Update your display. Use a dispatcher if needed
}
Справочная документация по ThreadPoolTimer
Имейте в виду, что Raspberry Pi не имеет батареи для экономии текущего времени. Ваша доска должна будет синхронизироваться через Интернет, чтобы обновить дату и время.