Multithreading Windows 10物联网核心,共享SPI数据

Multithreading Windows 10物联网核心,共享SPI数据,multithreading,win-universal-app,spi,windows-10-iot-core,Multithreading,Win Universal App,Spi,Windows 10 Iot Core,我的windows 10 IOT核心应用程序使用SPI收集 许多实体。有一些很好的例子可以用来启动计时器来获取SPI数据、更新数据以及将UI元素绑定到此数据。结果是,只要SPI获得有关已更改实体的一些数据,驱动UI的数据就会更新,绑定到此数据的任何UI元素都会更新。我甚至可以通过使用双向绑定跟踪列表中的选定项来更改此页面上显示的数据子集 与许多示例一样,我的代码结构如下: public async void Init_SPI() { ....

我的windows 10 IOT核心应用程序使用SPI收集 许多实体。有一些很好的例子可以用来启动计时器来获取SPI数据、更新数据以及将UI元素绑定到此数据。结果是,只要SPI获得有关已更改实体的一些数据,驱动UI的数据就会更新,绑定到此数据的任何UI元素都会更新。我甚至可以通过使用双向绑定跟踪列表中的选定项来更改此页面上显示的数据子集

与许多示例一样,我的代码结构如下:

public async void Init_SPI()
        {
           ....
            periodicTimer = new Timer(this.TimerCallback, null, 0, 10);
        } // public async void Init_SPI()

 private void TimerCallback(object state)
        {
            /* UI updates must be invoked on the UI thread */
            var task =
             this.Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () =>
            { ... update states of data that many be bound to UI element
我的问题:

我不知道如何基于上述内容更新多个页面的数据,因为this.variable指的是启动计时器的页面的UI线程

更新一个静态类并让多个页面连续轮询这些静态数据以使UI跟踪这些大量元素,这样做效率太低

目前,我唯一的想法是将所有XAML页面编码在一个页面中,并在这些“虚拟”页面之间创建选项卡。我宁愿有多个页面来保持这些页面的功能分离

对于如何从SPI端口读取的数据更新多个页面,如有任何建议,将不胜感激

问候,,
John

很抱歉回答得太晚,但我的解决方案是仍然创建“真实”页面——但只将数据“中继”到当前可见的页面。因此,每当一个页面变得可见时,我都会让上面的代码片段的内部部分
{…更新数据状态[…]
来指出该页面。 这可以通过一个简单的
switch
语句,或者通过一个带有
HandleSpiData(TheSpiData)
方法的简单接口来实现,甚至可以通过一个简单的
操作来实现