问题描述
我有一个在 Windows 10 IoT Core 上运行的 UWP 应用程序,我不断地从多个传感器读取输出,并将它们显示在 TextBlock 中。
我目前正在为每个传感器使用 DispatcherTimer,但我想看看是否有办法通过使用多个线程来优化代码(每个线程将从传感器收集数据,然后 UI 线程将更新 TextBlocks )
我尝试编写以下代码,但它使事情变得更糟
这是我为其中一个传感器创建的计时器:
private void updatePeakValue()
{
timerPeakValue = new System.Timers.Timer(10);
timerPeakValue.Elapsed += PeakValue_Tick;
timerPeakValue.Enabled = true;
timerPeakValue.Start();
}
这里是 Elapsed Event(我使用 rand.next 来模拟从传感器读取值):
private async void PeakValue_Tick(object sender,object e)
{
Random rand = new Random();
await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal,() => {
tbPeakValue.Text = rand.Next(0,10).ToString();
});
}
这段代码阻塞了我的 UI,TextBlock 只会在我移动鼠标时更新
除了依赖多个 DispatcherTimer 之外,还有什么我可以尝试的吗?
先谢谢你!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)