0

我正在开发一个应用程序,我似乎花了很长时间才能获取我的数据(30-40 秒),所以我设置了一个低调分析器来检查问题出在哪里。

老实说,我仍然不知道问题出在哪里。我发现我可以快速(在 5-6 秒内)从我的服务中取回我的数据,将其全部美化以供显示,然后发送一条消息以通知我的 ViewModel 数据已准备好显示(使用 MVVM Light Messaging)。 .. 然后我的渲染线程会阻塞 10-40 秒。

这就是我不明白的事情。我的 UI 线程做得很好......用我在页面上的自定义进度动画制作它的小心脏。而且我通过 Messenger 发送的对象非常小(只有几个布尔值,指示可以在哪里找到数据以及它的外观)。

但是渲染线程(响应屏幕触摸事件的线程)被完全阻塞了。当线程最终解除阻塞时,我一次触摸以移动我的枢轴控件和所有触摸数据寄存器。

我去了 Windows Phone 性能分析,认为问题出在哪里会非常明显(我想我会看到 CPU 飙升到 100%,我可以追踪杀死我的函数)但它没有似乎没有注意到任何异常,通常的 UI 线程占据了节目,但没有任何异常。

我完全糊涂了。Mango 中有什么我需要注意的东西会严重阻塞我的渲染线程吗?

4

1 回答 1

0

我想我们需要看一些代码。另请注意,GetIsNetworkAvailable 可能需要 20 多秒才能返回结果。您提到您正在获取数据,因此您可能正在 UI 线程上调用此函数。

于 2011-09-12T11:11:01.133 回答