码迷,mamicode.com
首页 > Windows程序 > 详细

WPF 解决界面卡死

时间:2018-07-27 22:26:15      阅读:1662      评论:0      收藏:0      [点我收藏+]

标签:取数   技术   拆分   ext   客户   取数据   流程图   导致   nbsp   

工作中的项目,CS客户端会通过MQ接收前端设备发送的信息,之前测试的时候,由于测试的数据不大,没有进行压力测试,软件可以正常工作,随着项目现场设备数量的增加,CS客户端从MQ中订阅的数据量不断增加,最终导致,客户端界面卡死。原来的数据流程图如下:

技术分享图片

 

 这个数据流程,在数据不大的情况下,是没有什么问题,数据太多,从mq获取数据的流程太长,不管是Json反序列化,还是WPF界面渲染,都是耗时比较大。所以决定将数据流程改为如下所示:

技术分享图片

 

 

 修改后的方案,将原来的一个流程拆分两个流程,左边的流程只负责从mq取数据的流程,少了原来中间的Json反序列化和界面渲染的流程,提高了取数据的能力;右边的流程是ViewModel层主动定时从缓存队列取数据的流程,这里面根据业务的实际场景,根据订阅的设备,每个设备最多取界面能够显示的最大数量,这样就很好地解决了界面卡死的问题,不管前端设备上传了多少数据,实际客户端显示的数据最多是一定的,订阅设备的数量 X  界面最大显示的数量。

 

 

 

 

 

 

 

 

 

 

WPF 解决界面卡死

标签:取数   技术   拆分   ext   客户   取数据   流程图   导致   nbsp   

原文地址:https://www.cnblogs.com/Johar/p/9379804.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!