【发布时间】:2018-09-05 22:54:02
【问题描述】:
我尝试在 UWP 应用中使用 CreatePeriodicTimer 使用示例日期时间场景更新 UI。
我看到它在应用程序处于前台时工作,它被最小化的那一刻它停止触发事件。
但在调试模式下,即使应用程序被最小化,计时器也会触发并且 UI 会更新,但在发布模式下不会发生。
我还需要知道它在最小化模式下是如何更新的。
namespace PeriodicPolling
{
class Poller
{
public static Poller _instance = null;
ThreadPoolTimer _timer = null;
public static MainPage UpdatePage { get; set; }
public static Poller GetInstance()
{
if (_instance == null)
{
_instance = new Poller();
}
return _instance;
}
public void StartPoll()
{
_timer = ThreadPoolTimer.CreatePeriodicTimer(PollAndUpdateData, TimeSpan.FromSeconds(10));
}
async void PollAndUpdateData(ThreadPoolTimer timer)
{
DateTime dateTime = DateTime.Now;
await CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync
(CoreDispatcherPriority.High,
new DispatchedHandler(() =>
{
UpdatePage.MyBlock.Text = dateTime.ToString();
}
));
}
public void StopPoll()
{
_timer.Cancel();
}
}
}
【问题讨论】:
标签: uwp