在具有MVVM模式的WPF应用程序中,我有一个DockManager,它根据客户的配置显示不同的窗格。
其中一些View / ViewModel使用DispatcherTimer处理来自队列的数据,该数据在经过一段时间并处理队列之后(选择该选项是因为数据以很高的频率处理并且直接绑定到DataItems会降低性能。
做一些测试,我发现(这是正确的)即使没有显示View / ViewModel,DispacterTimer也会被调用,并且这占用了主线程上的资源,该资源最好执行其他操作,然后更新无用的ViewModel(因为数据已更新)频繁,因此当用户按顶部的窗格时,更新的数据有99%是旧的)
我想知道处理这些数据的最佳方法是什么。乍一看,我想完全跳过更新,然后将其委托给以后的过程(将视图推到顶部时,但是这样,在显示最新数据之前,我将需要做很多工作。
我的第一个想法是添加,if(!IsActive) return
但这不会处理队列,有什么建议吗?
qq_遁去的一_1
相关分类