【发布时间】:2019-04-05 19:26:30
【问题描述】:
我正在开发一个多平台 MVVM 应用程序,我希望保持 ViewModel 平台不可知。
我需要使用DispatcherTimer 或任何其他计时器。由于DispatcherTimer 不是.NET Standard/Core 的一部分,我想知道是否有更好的替代方案可以使用,这样我就可以保持VM 中没有特定于平台的代码(我希望它只依赖于.NET Core)?
它的工作方式是 ViewModel 实现一个接口,该接口公开 View 正在侦听的事件,并相应地响应它。
计时器在每次滴答时引发此事件。
【问题讨论】:
-
您需要在 UI 线程上运行上述代码吗?
-
@MartinZikmund 我已经更新了我的问题。
-
为什么需要视图模型在 UI 线程上引发事件?为什么不在视图级别使用 UI 线程?你的应用定位是什么?如果您的目标是 Prism.UWP,那么您可以使用
DispatcherTimer。如果你想让视图模型跨平台,你可以使用库的消费者必须实现的接口——比如IDispatcher和方法RunOnUiThread(Action action)
标签: mvvm timer uwp .net-core prism