Windows Phone загрузка предметов из изолированного хранилища - PullRequest
1 голос
/ 21 июня 2011

У меня есть коллекция (тысячи) данных, которые уже сохранены в моем изолированном хранилище. Проблема в том, что после того, как я получил коллекцию и привязал ее к списку, загрузка была очень медленной. Как лучше всего справиться с этой ситуацией?

Ответы [ 2 ]

3 голосов
/ 21 июня 2011

Лучший способ быть быстрым - не работать с коллекциями, содержащими тысячи предметов.

Какая часть медленная?

Если он читает из IsolatedStorage, читайте меньше.
Если вам не нужны все данные, поместите их в файлы меньшего размера (разделите данные) и загружайте файлы только по мере необходимости, а не все данные одновременно. В зависимости от данных и приложения будет зависеть, как и если это можно сделать.

Если он загружает большие объемы данных в ListBox, не следует.
ListBox не предназначен для хранения тысяч элементов.
С точки зрения удобства использования очень трудно найти конкретные элементы в очень большом списке. Особенно, когда вы видите только очень небольшое количество элементов (на экране) одновременно.
Подумайте об использовании LongListSelector или виртуализируйте список для повышения производительности.

Я бы настоятельно рекомендовал другой дизайн приложения, который не требует длинного списка.

0 голосов
/ 21 июня 2011

Если вы на самом деле читаете сами файлы из изолированного хранилища в свой список, вы, вероятно, могли бы улучшить свою производительность, сохраняя метаданные файла в файле XML или в какой-либо другой базе данных.Для Windows Phone 7.0 вы можете использовать SterlingDB, который представляет собой абстракцию над изолированным хранилищем, которая позволяет выполнять SQL-запросы к данным, хранящимся в файловой системе приложения.

Создание списка с тысячами элементов кажется плохой идеей, но если у вас есть XML-файл с именами файлов и данными в нем, вы, вероятно, получите гораздо лучшую производительность, чем при попытке зацикливания.через тысячи файлов и вытащить имена файлов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...