我正在开发一个应用程序,似乎花了很多时间来获取我的数据(30-40秒),所以我设置了一个低调的分析器来检查并查看问题所在。
老实说,我仍然不知道问题出在哪里。我发现我正在快速地从我的服务中获取数据(在5-6秒内),美化所有数据以便显示,然后发送一条消息给我的ViewModel,告诉我数据已经准备好显示(使用MVVM Light Messaging)……然后我的渲染线程会阻塞10-40秒。
这就是我不明白的地方。我的UI线程运行得很好...用我在页面上提供的自定义进度动画来实现它的动画效果。而且我通过Messenger发送的对象非常小(只有几个布尔值,表明可以在哪里找到数据以及它看起来是什么样子)。
但是渲染线程(响应屏幕触摸事件的线程)被完全阻塞。当线程最终解除阻塞时,我触摸以移动我的枢轴控件和所有触摸数据寄存器。
我去了Windows Phone的性能分析,我想问题会是什么非常明显(我想我会看到CPU峰值到100%,我可以追踪到杀死我的功能),但它似乎没有注意到任何异常,通常的UI线程占据了展示,但没有任何异常。
我完全糊涂了。Mango中是否有我需要注意的东西会严重阻塞我的渲染线程?
发布于 2011-09-12 19:11:01
我想我们需要看一些代码。还要注意,GetIsNetworkAvailable可能需要超过20秒才能返回结果。您提到您正在获取数据,所以您可能会在UI线程上调用此函数。
https://stackoverflow.com/questions/7383537
复制相似问题