I'm working on an application and it seemed like it was taking a disturbing amount of time for me to get my data (30-40 seconds), so I set up a low key profiler to check and see where the problem was.
I honestly still don't know where the problem is. I found that I was getting my data back from my service quickly (within 5-6 seconds), prettifying it all up for display and then send a message to signal my ViewModel that the data was ready for display (using MVVM Light Messaging)... and then my render thread would block for 10-40 seconds.
And that's the thing I don't get. My UI Thread is doing just fine... animating it's little heart out with the custom progress animation I have on the page. And the object I'm sending through the Messenger is super-small (just a couple of booleans indicating where the data can be found and what it looks like).
But the render thread (which is the one that responds to the screen touch events) is totally blocked. I touch to move my pivot control and all the touch data registers at one time when the thread finally unblocks.
I went to the Windows Phone Performance Analysis, figuring that it would be super-obvious what the problem would be (I figured I'd see the CPU spike to 100% and I could track down the functions that were killing me) But it doesn't seem to notice anything unusual, the usual UI Thread hogging the show, but nothing out of the ordinary.
I am utterly befuddled. Is there something in Mango that I need to be aware of that will block my render thread so severely?