【问题描述】:
步骤:
1.客户端请求服务器端数据,开始请求时,界面弹出PopUp其中显示Progressbar不停地滚动。
2.当服务器端有数据返回时,界面上的列表Listbox开始展示数据,并且隐藏显示Progressbar的这个Popup。
问题出现在第2步,UI线程需要同时加载Listbox展示数据,又要隐藏Progressbar,此时可能会出Progressbar卡住不动,直到Listbox数据加载完成。
【可能原因分析】:
1.Listbox中图片解析耗时
2.Listbox初次加载耗时
【解决办法】:
调用UIElement的UpdateLayout()方法强制更新,使得获取数据后强制隐藏Progressbar。至于具体原因以及更好的解决方法有待继续研究。
【备注】:
涉及到UI操作,尽量使用
Deployment.Current.Dispatcher.BeginInvoke(() => { //ToDo... });
因为这是异步执行的,能够防止UI阻塞。