【Windows Phone 8】 Progressbar相关的UI阻塞的问题

【问题描述】:

步骤:

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阻塞。

原文地址:https://www.cnblogs.com/fb-boy/p/3499447.html