Windows Phone (Mango) Визуализация темы заблокирована - PullRequest
0 голосов
/ 12 сентября 2011

Я работаю над приложением, и мне показалось, что получение данных заняло у меня очень много времени (30-40 секунд), поэтому я установил низкопрофильный профилировщик, чтобы проверить и выяснить, где проблема был.

Честно говоря, я до сих пор не знаю, в чем проблема. Я обнаружил, что я быстро получаю свои данные из службы (в течение 5–6 секунд), предварительно подготовив их к отображению, а затем отправив сообщение, сигнализирующее моей ViewModel о том, что данные готовы к отображению (с помощью легкого обмена сообщениями MVVM). ..и тогда мой поток рендеринга будет блокироваться на 10-40 секунд.

И это то, чего я не понимаю. Мой поток пользовательского интерфейса работает очень хорошо ... оживляя его с помощью пользовательской анимации прогресса, которую я имею на странице. И объект, который я отправляю через Messenger, очень маленький (всего пара логических значений, указывающих, где можно найти данные и как они выглядят).

Но поток рендеринга (который реагирует на события касания экрана) полностью заблокирован. Я касаюсь, чтобы переместить свой элемент управления поворотом, и все данные касания регистрируются одновременно, когда поток, наконец, разблокируется.

Я пошел к анализу производительности Windows Phone, подумав, что было бы совершенно очевидно, в чем проблема (я подумал, что увижу всплеск процессора до 100%, и я смог бы отследить функции, которые меня убивали) Но он, кажется, не замечает ничего необычного, обычный поток пользовательского интерфейса, затягивающий шоу, но ничего необычного.

Я совершенно сбит с толку. Есть ли в Mango что-то, о чем мне нужно знать, что так сильно блокирует мой поток рендеринга?

1 Ответ

0 голосов
/ 12 сентября 2011

Полагаю, нам нужно увидеть код.Также имейте в виду, что для возврата результата GetIsNetworkAvailable может потребоваться более 20 секунд.Вы упомянули, что получаете данные, поэтому, возможно, вы вызываете эту функцию в потоке пользовательского интерфейса.

...