【发布时间】:2019-04-14 07:15:39
【问题描述】:
在我的应用程序中(在 Dragonboard 410c 上)我有一个 ThreadPoolTimer。 Tick-Event 内部有很多工作要做,大部分工作是处理数据和更新 UI。所以我在 Tick-Event 中添加了一个调度程序并在那里处理所有工作。由于 Tick-Event 每秒调用一次(更新 UI 上的时钟需要这个),一些 UI 动画每秒有点滞后。一旦我删除了 UI 上更新时钟的选项,所有动画都运行流畅。
private async void clock_Tick(ThreadPoolTimer timer)
{
await CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(CoreDispatcherPriority.Normal,
() =>
{
textBlockClock.Text = DateTime.Now.ToString("HH:mm");
textBlockWeekDay.Text = DateTime.Now.ToString("dddd", cultureInfo);
textBlockDate.Text = DateTime.Now.ToString("dd.MM.yyyy");
// Do more work (call multiple methods and tasks)
});
所以问题是,只使用一个调度程序并在其中添加所有相关代码是正确的方法,还是应该在每个调用的方法/任务中使用调度程序以进行更好的优化?
【问题讨论】:
标签: c# uwp dispatcher windowsiot windows-iot-core-10