2

Я создаю структуру пользовательского интерфейса для мобильного приложения, и у меня есть вопрос об управлении графикой пользовательского интерфейса.C# Лучший способ управления графикой пользовательского интерфейса

Сейчас я храню всю графику в виде встроенных ресурсов. Но часть GUI проекта разделена на 3 разных Project и NameSpaces, каждая из которых содержит графику в качестве встроенных ресурсов. Один из проектов является базовым и не знает о двух других, а два других проекта нуждаются в ресурсах из их NameSpace и сборки и из третьего (базового) пространства имен и сборки

Что я делаю, когда ресурс запрашивается через имя файла, я просматриваю каждый из списков объектов объекта GetManifestResourceNames из трех проектов, сортирует их, а затем ищет первую строку, содержащую имя файла. Я замечаю, что для каждой графики требуется 11-14 мс, чтобы получить эту строку! Когда все сказано и сделано, я смотрю на 60-100 мс только в поиске имени ресурса

Я знаю, что должен быть лучший способ динамически найти ресурс для проектов и пространств имен, используя только имя файла. Любая помощь с этим была бы превосходной!

Кроме того, наличие вложенных ресурсов не является ограничением. Если есть лучшее решение, которое не связано с ER, это было бы здорово!

ответ

1

60-100ms не является плохим как одноразовая операция, поэтому вы можете создать свой собственный класс кеша, который на ранних этапах запускает это приложение во время выполнения приложения - он может использовать объект Dictionary, чтобы вы очень быстро время поиска с этого момента.

Если у вас нет списка заранее, вы можете вернуться в «ленивый загруженный» кеш, то есть значение будет проверяться при первом запросе, а затем сохранено для будущих обращений.

Надеюсь, что это поможет.

+0

Благодарим вас за ответ! Итак, как бы вы рекомендовали создать словарь? Ключ, являющийся именем изображения и сборкой, является значением? IDK, насколько большие объекты Assembly, если они маленькие (просто указатели на статические объекты), это было бы хорошо, но если они огромны, у меня есть только 32 МБ для работы, так как это .netCF ... –

+0

Вы пытаетесь получить или кешировать объекты на основе имени файла? 'Словарь ' сделал бы это: тогда просто загляните в словарь, и у вас будет свой объект в микросекундах :) –

+0

Спасибо за ответ. Я спрашивал, должен ли я установить словарь как «Словарь <строка, сборка>», и если объект Assembly был просто указателем или был очень крупным объектом. Это потому, что я очень ограничен размером кучи. Вот почему я не кэширую фактические объекты Image. –

Смежные вопросы