Я работаю над приложением, и мне показалось, что получение данных заняло у меня очень много времени (30-40 секунд), поэтому я установил низкопрофильный профилировщик, чтобы проверить и выяснить, где проблема был.
Честно говоря, я до сих пор не знаю, в чем проблема. Я обнаружил, что я быстро получаю свои данные из службы (в течение 5–6 секунд), предварительно подготовив их к отображению, а затем отправив сообщение, сигнализирующее моей ViewModel о том, что данные готовы к отображению (с помощью легкого обмена сообщениями MVVM). ..и тогда мой поток рендеринга будет блокироваться на 10-40 секунд.
И это то, чего я не понимаю. Мой поток пользовательского интерфейса работает очень хорошо ... оживляя его с помощью пользовательской анимации прогресса, которую я имею на странице. И объект, который я отправляю через Messenger, очень маленький (всего пара логических значений, указывающих, где можно найти данные и как они выглядят).
Но поток рендеринга (который реагирует на события касания экрана) полностью заблокирован. Я касаюсь, чтобы переместить свой элемент управления поворотом, и все данные касания регистрируются одновременно, когда поток, наконец, разблокируется.
Я пошел к анализу производительности Windows Phone, подумав, что было бы совершенно очевидно, в чем проблема (я подумал, что увижу всплеск процессора до 100%, и я смог бы отследить функции, которые меня убивали) Но он, кажется, не замечает ничего необычного, обычный поток пользовательского интерфейса, затягивающий шоу, но ничего необычного.
Я совершенно сбит с толку. Есть ли в Mango что-то, о чем мне нужно знать, что так сильно блокирует мой поток рендеринга?